1. 程式人生 > >8.常量分析及變量交換時空分析

8.常量分析及變量交換時空分析

color 時間 open lap closed define etc 常量 src

  • 間接修改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 }
    View Code
  • #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 }
    View Code

8.常量分析及變量交換時空分析