C语言面试高频(一)

C语言面试高频(一)

1.全局变量和局部变量的区别

全局变量:

  • 在函数外部声明的变量,整个程序都可以访问。
  • 声明时会被默认初始化,可以在任何函数中使用。
  • 生命周期长,整个程序执行期间都存在。
  • 全局变量存储在全局数据区(data)中

局部变量:

  • 在函数内部或代码块内部声明的变量,只能在所属的函数或代码块中访问。
  • 声明时没有默认初始化,需要手动赋值才能使用。
  • 生命周期短,只在所属的函数或代码块的执行期间存在。
  • 局部变量存储在栈区(stack)

2.int main(int argc, char ** argv)函数中,参数argc和argv分别代表什么意思?

在C语言中,主函数int main(int argc, char **argv)用来作为程序的入口,argcargv是其参数。

  • argc是整型参数,表示命令行参数的个数。它记录了程序在运行时附带的命令行参数的数量,至少为1,因为程序自身的名称也算一个参数。
  • argv是字符指针数组,用来存储命令行参数的字符串。每个元素指向一个以null结尾的字符串,表示一个命令行参数。
  • argv[0]指向程序的名称,argv[1]指向第一个参数,以此类推,argv[argc-1]指向最后一个参数。

举个例子,假设我们在命令行中执行以下命令:

./program arg1 arg2 arg3

那么argc的值为4,argv的值如下所示:

argv[0] = "./program"

argv[1] = "arg1"

argv[2] = "arg2"

argv[3] = "arg3"

argv[4] = NULL

3.static关键字

  • 声明静态变量,使其生命周期延长或作用域限定在当前文件内。
  • 声明静态函数,使其作用域限定在当前文件内。
  • 声明静态成员变量,使其属于类本身而不是对象,多个对象共享同一份内存。
  • 使用静态限定符,控制变量的初始化和生命周期。

举例:

  1. 在函数内部使用 static:

#include <stdio.h>

void increment() {

  static int count = 0;

  count++;

  printf("调用次数:%d\n", count);

}

int main() {

  for (int i = 0; i < 5; i++) {

    increment();

  }

  return 0;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值