(部分图片来源于@鹏哥C语言)
一,操作符
单目操作符
现在我们来了解其中一些操作符
1,- 负值:将正变成负,负变成正,跟数学的意思差不多
2,!逻辑操作符:真变假,假变真(代码解释如下)
3, sizeof 操作符 :
4,前置++,-- 后置++,--
a++:先使用a,后对a+1 (a--同理);
++a:先对a+1,后使用a (--a同理);
对这两个操作符不必做过多的深究
5,(类型):强制类型转换
(逗号表达式会对外部的变量产生影响)
其余的在这就不做过多的解释了
二,常见关键字
这些关键字都是C语言提供的,我们作为C语言的使用者不能自己创造关键字
1,typedef:类型重命名(相当于起外号,起别名,为了使复杂的类型简单化)
如图可知 num与num2 的数据类型一样
2,register:寄存器
3,static:静态关键字,可用来修饰变量和函数
a修饰局部变量:static修饰局部变量时,局部变量就变成了静态的局部变量,出了局部的范围,变量不会销毁,下一次进入该局部变量,值依然存在。
其实是因为:static修饰的局部变量是储存在静态区的(静态区中的局部变量出了作用域不销毁)所以static修饰局部变量时,实际改变的是变量的存储位置,本来一个局部变量是放在栈区的,被static修饰后放在了静态区,从而导致变量出了作用域依然存在,生命周期并没有结束。
注:static修饰的局部变量可被修改
b修饰全局变量
c修饰函数
(之后会做补充)
———————————————————————————————————————————
b修饰全局变量
一个全局变量 本来是具有外部链接属性的,但被static修饰后,外部链接属性就变成了内部链接属性,只能在自己所在的源文件内部使用,不能在其它源文件内使用。使用上感觉作用域变小了
目的:为了代码的安全性
extern————用来声明外部符号(注意声明的格式)
(此时的全局变量未被static修饰)
全局变量被static修饰过后,在其他源文件里无法在引用 g_val这个全局变量
c修饰函数(被static修饰的函数与被static修饰过的全局变量同理)
一个函数 本来是具有外部链接属性的,但被static修饰后,外部链接属性就变成了内部链接属性,只能在自己所在的源文件内部使用,不能在其它源文件内使用。使用上感觉作用域变小了
目的:为了代码的安全性
讲到这就大致了解了static这个关键字的大致用途:简单来说就是延长局部变量,缩小全局变量与函数
最好还有一个值得注意的点:那就是在变量命名的时候不能用关键字来命名