1樓:匿名使用者
這個,不在於 *p=b;還是*p=a;,關鍵是之前的語句
p=&b;也就是讓p指向了變數b,但是b中,沒有讓p指向某個變數,也就是p是個野指標,語法上雖然沒錯,但是實際執行的話,有風險的
2樓:
因為在b中p指標沒有初始化。在d中p被初始化後指向b的位址所以可以用。
若有說明: int *p,m=5,n;以下正確的程式段是()
3樓:勤奮的
a和b中scanf函式要
傳的引數是位址,需要int*型別的引數,但是a中*p表示是int型,內&p表示int **型別,所以不符合。容
c、中*p指標沒有初始化,它還沒有儲存變數n的位址,和n沒有關聯起來,直接把n的值給*p。它是無法接受的。
4樓:冰陵啟示錄
d是正抄確的
a,b中 p是n的位址 那麼如果要輸入n 應該是scanf("%d", p);
c中 p還沒定義 給*p賦值就是給乙個沒有開闢的位址賦值了d是正確的 意思是p為n的位址,將p位址上的數變成m, 等價於n=m;
若有如下定義,一下呼叫正確的是
5樓:匿名使用者
a.scanf需要提供變數位址,a不是位址
b.c.變數a的型別是int,用%f輸入會導致出錯
d.&p的型別是指標(int *)用%f輸入不行
設有int p,a 2,b 1則執行以下語句p p a b後,a的值為多少,為什麼
3因為p是指標,指向a的位址,那麼 p即是p指向的位址的值改變,而p的位址就是a,所以a的值就發生了改變。a 3因為a的位址被p獲取後 p將a的內容賦為a b,也就是3 設有inta 2,b 1,p a 則執行語句 p 3 a a b 後,變數a的值為 int a 2,b 1,p a p 3 因為指...
c語言若有說明intp1p2m5n以下
b,c是肯定正確的答案。關於 d,桐兒7ms籲8 解釋的很好。我一開始還犯嘀咕。d的問題是 p2是int指標,沒有初始化,也就是沒有指向任何實際的int變數地址。 桐兒7ms籲 a.p2 p1,p2不是雙指標 b,p2 n,n還沒有賦值 c,正確 d,p2 p1 原來p2還沒初始化,即沒有分配記憶體...
若有定義語句 int a 3,b 2,c 1,以下選項中錯誤的賦值表示式是
a錯了,不能將3賦值給表示式,b 4已經是個表示式了,既然是表示式就只有真假 即0和1 基礎知識要看仔細點 a錯了,原式 a 4 3,明顯錯誤 a肯定是錯的 變數a是整型,b 4 3這個表示式是bool,所以出錯。a放到程式裡一試就式出來了,只有a報錯,其他的都能通過 若有定義語句 int a 3,...