C语言面试题(1)

5 篇文章 0 订阅

static

  • static作用
    • a:在函数体中,一个被声明为静态的变量在这一函数被调用过程中维持其值不变
    • b:在模块内(但在函数体外),一个被声明为静态变量的变量,可以被这个模块内的所有函数使用,但不能被模块外的函数使用,它是一个本地的全局变量,
    • c:在模块内,一个被声明为静态的函数只可被这一模块内的其它函
      数调用,那就是这个函数被限制在声明它模块的本地范围内使用
static全局变量与普通的全局变量有何不同?static局部变量和普通局部变量有何区别?static函数与普通函数有什么区别?

上面三个不同就是隐蔽性的区别。static全局变量与普通的全局不同在于,普通的其他源文件也可以访问,而static全局变量是对其他源文件隐蔽的。以此类推上面所说的后面的情况。


extern的作用

  • extern可置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量或函数时,在其它模块中寻找其定义

.关键字const是什么含义?

  • 1、修饰变量为只读,能对不想修改的变量进行保护作用,能提高程序的健壮性;
  • 2、const定义的常量编译器可以对其进行数据静态类型安全检查;
  • 3、const修饰函数形式参数:当输入参数为用户自定义类型和抽象数据类型时,将“值传递”改为“const&传递”可以提高效率;
  • 4、关键字const的作用是为给读你代码的人传达非常有用的信息。
指针常量和常量指针(const)
  • 指针常量:(int* const p)指针是常量,指针指向不可以改变,内容可以改变;
  • 常量指针:(int const *p)指向常量的指针,指向可以改变,但内容不可以改变;
    总结:看const修饰的是指针还是变量;

堆与栈的区别

  • Heap是堆,Stack是栈;

  • Stack的空间由操作系统自动分配/释放,Heap上的空间是手动分配/释放;

  • C中的malloc函数分配的内存空间在堆上,C++对应的是new操作符;

程序在编译期间对变量和函数分配内存都在栈上进行,且程序运行过程中函数调用时参数的传递也在栈上进行;


函数指针和指针函数

  • 函数指针:指向函数的指针;表示:int (*func)(int);

  • 指针函数:返回指针的函数;表示: int* func(int);

    有相关验证的代码 reference文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值