int a = 1;
int*pa = &a;
printf("a所佔的記憶體大小:%lu\n",sizeof(a));
printf("pa所佔的記憶體大小:%lu\n",sizeof(pa));
輸出結果:a所佔的記憶體大小:4
pa所佔的記憶體大小:8
(在64位系統下,乙個指標變數佔據8個位元組)
輸出a的兩種方式:
printf("a = %d\n",a);
printf("a = %d\n",*pa); //這裡*pa(右值)表示取值
char c = 'c';
char *pb = &c;
printf("c所佔的記憶體大小:%lu\n",sizeof(c));
printf("pb所佔的記憶體大小:%lu\n",sizeof(pb));
輸出結果:c所佔的記憶體大小:1
pb所佔的記憶體大小:8
int a = 1;
int*pa = &a;
int*paa = &a;
*pa = 2; //這裡*pa(左值)表示指標指向的那片位址空間
printf("*pa = %d\n",*pa);
printf("**pa = %d\n",*paa);
輸出結果:
*pa = 2
**pa = 2
int a = 1;
int*pa = &a;
printf("a = %d\n",a);
printf("所記錄的值:%x\n",pa);
printf("所記錄的值:%x\n",pa+2);
輸出結果:
a = 1
所記錄的值:5fbff82c
所記錄的值:5fbff834
int a = 1;
int*pa = &a;
int**paa = &pa;
printf("%d\n",**paa);
printf("%lu\n",sizeof(paa));
輸出結果:
18
// const的位置
int b = 5;
const int
*pa = &b;
b = 6; // 不可以通過指標改變b的值
printf("%d\n",*pa);
int*const pb = &b;
*pb = 7;
printf("%d\n",*pb);
b = 4;
printf("%d\n",b);
int a = 3;
int*pa = &a;
printf("*pa = %d\n",*pa);
void *pb = &a;
int*pbb = (int
*)pb; //(指標型別轉換)
printf("*pbb = %d\n",*pbb);
//array 陣列名存的是陣列首個元素的首位址
intarray[3] = ;
printf("%x\n",array+1); //陣列元素2的位址
printf("%x\n",&array+1);
//&array +1:乙個單位的資料型別長度,此時是array[3],長度為12個位元組
int
array[3] = ;
printf("%x\n",array);
printf("%x\n",&array);
printf("%x\n",&array[0]);
//列印陣列元素1
printf("--->%d\n",*array);
printf("--->%d\n",array[0]);
printf("--->%d\n",*(array+0));
printf("--->%d\n",*(0+array));
printf("--->%d\n",0[array]);
//列印陣列元素2
printf("%d\n",array[1]);
printf("%d\n",*(array+1));
//重要的事再說一遍
intarray[10] = ;
printf("%d\n",array+1);
printf("%d\n",&array+1);
int array[3] = ;
char *pa = array;
int*paa = (int
*)pa; //(指標資料型別轉換) 可將111換成150檢驗
printf("%d\n",*paa);
int array2[2][3] = ,};
int (*pa)[2] = &array2;
int result = *(
*(pa+0)+3);
printf("result:%d\n",result);
C 基礎知識
抽象類 abstract class 一種不可以被例項化的類。抽象類中一般含有抽象方法,當然也可有具體實現。繼承類只有實現過所有抽象類的抽象方法後才能被例項化。介面 inte ce 只含有共有抽象方法 public abstract method 的類。這些方法必須在子類中被實現。反射 程式集包含模...
c 基礎知識
或運算的意義是什麼 0 0 0 0 1 1 1 0 1 1 1 1 無進製與運算的意義是什麼 在vc中,視窗的每個屬性對應乙個只有一位為1的16位的二進位制數,當增加某屬性做或運算 即可,取消某個屬性只需與 上這個屬性的取反。cs.style ws maximizebox 和cs.style cs....
C 基礎知識
1 malloc和new區別與聯絡 a malloc malloc為函式,需要標頭檔案,申請的無型別,需要強制轉換 free釋放。示例 char p char malloc 10 sizeof char free p b new new是運算子,不需要標頭檔案,申請的是有型別的,自動呼叫建構函式 d...