C语言易混淆、简单算法、结构体题目练习、常见关键字总结-1
https://developer.aliyun.com/article/1506622
四、C语言常见关键字
1.const关键字
在C语言中通常我们把const关键字称作只读变量,不能通过变量本身修改它的数值,但是可以通过其他方式去修改,比如通过地址
const在笔试题中经常以下面的4种方式出现,问哪些能修改,哪些不能修改
我们只需要记住一个原则,就近原则,const靠近谁,修饰的就是谁
第一个和第二个一样,const放在前面和后面都是在星号前面,靠近星号,所以它们修饰的是*p,
也就是指针p可以修改,但是p指向的内存不能修改
第三个const靠近p,所以它修饰指针p,也就是指针p不能修改,但是p指向的内存可以修改
第四个综合了前面三个,指针p不能修改,p指向的内存也不能修改
2.static关键字在C语言中的作用
static关键字有三个主要作用:
1.修饰全局变量
2.修饰函数
3.修饰局部变量
(1)首先是修饰全局变量,就是变量只能在本文件中使用,不能在其他文件中使用
代码示例:vi 1.c
vi 2.c
编译:gcc 1.c 2.c -o main
./main
编译结果:
假设用上static关键字
编译出错:因为num被static修饰,只能在1.c文件中使用
(2)其次,可以用static修饰函数,作用也差不多,函数只能在本文件中调用
比如这次在2.c中用static修饰函数
编译的时候又会出错:因为在1.c中无法使用2.c中的函数
(3)static修饰局部变量,可以改变变量的生命周期,直到程序运行结束时才会被释放
经典笔试题示例:num存放在栈区,函数调用完会释放
编译结果:
用static修饰:num存放在静态数据区,程序运行结束才释放
编译结果: