C語言的問題

2022-05-18 20:48:33 字數 511 閱讀 7423

1樓:

輸出肯定是10個亂碼!你把數寫入了p指向的目標,卻列印一個沒有賦值的p+1指向的目標,當然不會是0 2 3 4 5 6 7 8 9。要想輸出0 2 3 4 5 6 7 8 9,有多種改法,現提供二種供參考:

1.把printf("%d ",*p);改printf("%d ",*(p-1));。

2.把*(p++)=i;改成*p=i;,同時把printf("%d ",*p);改成printf("%d ",*p++);。

以上二者都能達到你的目的。

2樓:匿名使用者

其實這個問題你可以試試p[i] = i;此時你會發現結果是你想要的,這是為什麼呢?這個時候我建議你去看看下邊操作符是怎麼過載的,這個時候你會發現下標操作符返回的是引用,所以p[i] = i,這樣寫是正確的。但是為什麼你那樣寫不正確了,以為你寫的是值傳遞,值傳遞不能改變地址中的值,然而你又沒有初始化記憶體,所以結果是隨機值,就是你看到的那樣!!

去看看下標操作符的過載你就會明白的額

c語言的問題,C語言的問題

答案是d 最開始struct a a 表示建立了一個結構體a,它的初始資料是a.a 1001 a.b zhangda a.c 1098.0 然後a f a 呼叫了struct a f struct a t 方程並把呼叫後得到的物件賦值給a 所以接著看到這個方程,t.a 1002 strcpy t.b...

c語言問題,C語言問題

struct student拼寫成struct studnt了。拼寫錯誤 struct studnt沒有定義,所以無法執行sizeof。include typedef struct student int main c語言問題?嗯你的理解是對的,break就是用來跳出的switch,如果沒有brea...

c語言問題,c語言問題

首先你這個程式輸入個數是不可控的,n沒起到作用,因為你控制輸入的迴圈已經規定了i是從0到99,必須要輸入100個。而你這個 自認為統計總人數 的n n i,相當於n 1 2 3 那是不可能的。while xh i scanf d d xh i sg i n i sum sum sg i 用美元符號做...