【操作符与关键字】

一. 操作符

     移位操作符--移动二进制的位   << >>

     复合赋值符

    a += 3  -= *= /= &= ……

  1.       单目操作符

! 逻辑反操作 -----0为假  非0为真

  -  负值

  +   正值

&   取地址

sizeof 操作数的类型长度 以字节为单位

~ 对一个数的二进制按位取反

 * 间接访问操作符

-- 前置 后置

++ 前置 后置

++a // a++

前置++ 先加1,后使用 后置++ 先使用,后加1

      强制类型转换

int a = (int)3.14

      逻辑操作符

&& 与  ||  或

      三目操作符

(a >b ) ? (a) :(b) 真为a 假为b

       逗号表达式

  从左向右依次计算

       exp1,exp2,exp3,

二. 关键字

 常见关键字

---预设好的 不能自己创造 变量的名字不能是关键字

  类型有关 auto char const double enum

                 float int long register short

                 signed sizeof static struct

                 typedef union unsigned void

  控制逻辑 break continue case default do

                 else if for goto return while switch

  申明外部符号 extern

   volatile const

       typedof 类型定义(重命名)

 typedef unsigned int  uint;

int main(){

unsigned int num1 = 0 ;

uint num2 = 0;

return 0;

}

// 可以让复杂的类型简单化

//num1 num2 是同一种类型的变量

 static 修饰变量和函数

 修饰局部变量 (进入函数创建 出了函数销毁(空间还给操作系统))
void test() {
	int a = 2;
	a++;
	printf("%d\n", a);
}
int main() {
	int i = 0;
	while (i < 5) {
		test();
		i++;
	}
	return 0;
}

输出 3\n3\n3\n3\n3\n

加上static之后  

//static 修饰局部变量 使得局部变量出了作用域并不销毁,下一次进入函数,依然使用的是上次留下的值

//如果反复调用函数,产生累计的效果

//本质上:static修饰局部变量使得变量的存储位置发生变化

//本来局部变量是放在栈区,被static修饰后,放在内存的静态区,感觉是生命周期变长

//作用域没有变化

void test() {
	static int a = 2;
	a++;
	printf("%d\n", a);
}
int main() {
	int i = 0;
	while (i < 5) {
		test();
		i++;
	}
	return 0;
}

输出 3\n4\n5\n6\n7\n

编译器在编译的时候

是每个.c文件单独编译的 (链接)

解决方法: (声明外部符号) extern int g_val

 

 

 

          

修饰全局变量

static 修饰全局变量后,使得这个全局变量只能在自己所在的源文件内部使用
其他源文件无法使用
本来一个全局变量是具有外部链接属性的,只要合理的声明,全局变量在其他源文件内部,可以使用

而被static 修饰后,外部链接属性就变成了内部链接属性,只能在自己所在的源文件内部使用了

修饰函数

两个头文件

 

加上static就不能调用了

//本来函数是具有外部链接属性的

//在其他源文件内部可以被调用

//被static修饰之后外部链接属性就变成了内部链接属性

//就只能由自己所在的源文件内部使用

  register 寄存器关键字

电脑上有存储设备  寄存器  4字节 几十个

                                 内存      8G/6G/32G

                                硬盘     500G/1T

                            (网盘)    1T/2T 免费

 register int a  = 10; 建议性关键字 (建议a放在寄存器中)--最后由编译器来界定是否

放入

                    因为多次调用a 寄存器里反应更快

  • 11
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CaojunjiaOnly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值