- 间接修改const常量
1 void main() 2 { 3 const int a = 99; 4 printf("%d\n", a); 5 6 int *p = &a; 7 *p = 100; 8 printf("%d", a); 9 10 getchar(); 11 }
- #define 是真正意义的常量,不能直接修改,也不能间接修改,C语言能操作内存,不能操作寄存器,汇编语言可以操作寄存器
define就是替换,意义明确,实现批量修改
- 时间空间复杂度
1 void main() 2 { 3 int a = 10; 4 int b = 5; 5 // 6 printf("a=%d,b=%d", a, b); 7 /*a = b; 8 b = a;*/ 9 //评估时空复杂度, temp增加空间1, 时间3次 10 11 //int temp = a;//temp=10,a=10,b=5 12 //a = b; //b=5,a=5,temp=10 13 //b = temp;//b=10,a=5,temp; 14 15 16 //空间0, //赋值3次,+3次 17 //+ -- * // 18 a = a ^ b; //a=15,b=5 19 b = a ^ b; //b=10,a=15 20 a = a ^ b; //a=5,b=10 21 //+ - * /会数据越界, 最安全的做法是异或 22 // 99 23 //100 24 25 //11,00,0, 10,01,1 26 27 28 29 30 31 printf("\na=%d,b=%d", a, b); 32 33 getchar(); 34 35 36 }