C基礎知識 2015 09 22

2021-09-30 13:08:43 字數 2574 閱讀 4987

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...