《C語言筆記 指標相關 二 》

2022-05-23 15:24:07 字數 873 閱讀 7700

指標型別決定了指標如何參與運算

1,指標參與運算時,因為指標變數本身儲存的數值是表示位址的,所以運算也就是位址的運算。

2,指標參與運算的特點是,指標變數加1並不是真的加1,而是加1*sizeof(指標型別);如果是int *指標,則加1實際上就是表示位址+4(位址+sizeof(int)),如果是char *指標,則+1表示位址+1(位址+sizeof(char));

3,指標變數+1時實際不是+1而是加1xsizeof(指標型別),主要原因是希望指標+1剛好指向下乙個元素,而不希望錯位。

#includeint main(void);

printf(

"a = 0x%x \n

",a);

printf(

"&a[0] = 0x%x \n

",&a[0

]); printf(

"&a = 0x%x \n

",&a);

p = a+1

; printf(

"*p = %d \n

",*(p-1

)); //1

p = &a[0] + 1

; //&a[0]的型別是 int (*) 表示的是陣列首元素的大小

printf(

"*p = %d \n

",*(p-1

)); // 1

p = &a + 1

; //&a的型別是 int (*) 表示的是整個陣列的大小

printf(

"*p = %d \n

",*(p-1

)); // 5

return0;

}

《C語言筆記 指標相關(一)》

一,野指標問題 1,什麼是野指標?野指標就是指標指向了乙個不可知的位置 隨機的 不正確的 限制訪問的 2,會造成什麼危害?第一種情況,指向乙個不可訪問的位址 比如核心空間 會觸發段錯誤,這種算是最好的情況。第二種情況,指向乙個可用的但是沒有什麼特別意義的空間 比如說曾經使用過但已經不用了的棧空間或堆...

《C語言筆記 指標相關(一)》

一,野指標問題 1,什麼是野指標?野指標就是指標指向了乙個不可知的位置 隨機的 不正確的 限制訪問的 2,會造成什麼危害?第一種情況,指向乙個不可訪問的位址 比如核心空間 會觸發段錯誤,這種算是最好的情況。第二種情況,指向乙個可用的但是沒有什麼特別意義的空間 比如說曾經使用過但已經不用了的棧空間或堆...

c語言指標學習筆記(二)

6.指標和多維陣列 就拿陣列int array 5 2 舉例 array 是乙個占用兩個int大小物件的位址 array 0 是乙個占用乙個int大小物件的位址 故此,可以理解給array 1和array 0 1不同之處 畢竟,乙個代表著兩個int單位,乙個則代表著乙個 array是位址的位址,必須...