為什么在定義的時候,int *b = &a是正確的,而定義之后int *b = NULL, *b=&a是錯的呢?二者有什么區別嗎?
還有就是在大小端模式里int a=0x12345678,int b = a & 0xff的值有一樣嗎?short int c = (short int)a的值有一樣嗎?
uj5u.com熱心網友回復:
int *b = NULL, *b=&a
這里b已經定義,因此*b就是對b指向記憶體的參考。
int *b = &a;是定義并初始化;
第二個問題,樓主最好能寫個程式自己驗證一下。
uj5u.com熱心網友回復:
定義的時候,int *b* 是型別說明符
定義之后
* 是地址訪問符
uj5u.com熱心網友回復:
int *b = &a;*b=&a;
上面代碼的兩個*意義不同
第一個*,是代表型別,也就是定義了一個名字為b,型別為int*的變數
下面這個*,用來取內容,也叫解參考,也就是取出b這個int*指標的內容,它的內容是一個int型別,而你&a得到的是一個int*型別,int=int*,這樣賦值,肯定會出錯
你要想不報錯
直接 b=&a就好了
uj5u.com熱心網友回復:
大小端是針對不同機器而言的,本機上不用擔心這個問題轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/87316.html
標籤:C語言
