1樓:匿名使用者
在f函式中s是一個臨時的變數, 它隨著f的呼叫而產生,隨著f的結束而消失, 你這裡的交換只是在f中臨時調換了p指向的地址,並沒有改變p指向地址的記憶體中的內容,要想改變裡面的內容就要解指標,給具體存放資料的記憶體賦值,例如p[1]=s[1];等等.
2樓:741852963一
這很簡單啊,陣列下標從0開始,s[1]是第二個:,輸出結果當然是它啦
3樓:匿名使用者
你的f函式有什麼作用 指標指示地址 你主函式又沒有用改了的地址
4樓:樂酷科技
struct stu
;void f(struct stu *p),},*q=s,*t=s;
t=q;q=p;p=t;//這裡是改變指標的指向 不過不影響最後輸出}void main()
,};//只賦值了2個s[0],s[1]
f(s);
printf("%s %d %3.0f\n",s[1].name,s[1].
num,s[1].totalscore);//輸出s[1] 即"liguijuan",123.58}
C語言小問題,關於,關於C語言的小問題?
a b max a max b 語法錯誤,該為 a b max a max b 另外注意 printf 最大值為 c n c 改正為printf 最大值為 d n c 已測試關於i 和 i的區別,如果沒有賦值的話,他們結果是沒區別的,關於他們的區別,我舉例說明 1 int i 0,a a i 這裡結...
C語言問題C語言問題,C語言小問題段錯誤是什麼
str2num char p num num k return num c語言問題c語言問題 include int main int h,m scanf d d h,m printf s num h if m 0 else printf o clock printf n return 0 c語言小...
c語言程式設計中的小問題,C語言程式設計的小問題
1 可以的。a int a 100 0.5 將第三位小數加上去,通過強制型別轉換,則會丟棄小數部分 a a 100 由於a是double型別,故商包含2位小數 a int a 100 0.5 100.0 這樣合併會得到相同的結果。2 可以這樣操作。a int a 100 100.0 問題一 可以寫成...