C語言問題,解析就採納哦,C語言問題,解析就採納哦

2022-04-10 05:57:43 字數 1211 閱讀 2075

1樓:

a[0]指向2

a[1]指向6

a[2]指向10

在不嚴謹的編譯器,對變數型別不做嚴格檢驗的話,會將int[1]和int[1]等同起來(只用於int 或char,因為是預設型別),這種編譯器實際上是將 int a[3][2] 與 int a[6]等同的,嚴格的編譯器必須顯示宣告強制型別轉換的

a[1]+1指向8就不奇怪了。

有機會你看一些經典的c **,許多高手宣告陣列只宣告一維的,即使是兩維以上的,也寧願自己計算處理下標,因為這樣一則相容性更好,二則靈活性以及效率比編譯器高。

在支援class後,就不再建議這樣做了,因為牽涉的建構函式解構函式是不同的

2樓:福州吧壹母

int a=3,b=4,c=5,t=99;

if(b

a=c; //a=5

c=t; //c=99

if(a

b=a; //b=5;

a=t; //a=4;

列印 a 空格 b 空格 c回車,即為 「4 5 99」

注意點是 ,if 成立與否,跟 if 相關聯 的都只有一條語句 (分號為語句結束符,大括號為一條語句),而不是 多條語句

滿意請採納。

3樓:匿名使用者

這個陣列初始化有問題。正確的寫法應該是:

int a[3][2] = , , };

這樣寫就很好理解了。

*(a[1] + 1) 指的是,第二維第二個數。

4樓:皇太子

a[1]=&a[1][0],因為陣列名錶示陣列首元素地址。

a[1]+1=&a[1][0]+1,也就是加一個元素的地址,即&a[1][0]+1=&a[1][1]。取*就是把a[1][1]的值表示出來。

還有記住下標從0開始的,a[0][0],a[0][1],a[1][0],a[1][1],正好第四個數便是。所以為8

5樓:匿名使用者

a[0] 2 4

a[1] 6 8

a[2] 10 12

*(a[1] + 1)代表的是a[1]行的第二個數滿意請採納,謝謝!

C語言,這題解析是不是錯了,C語言,這題的解析有問題把??

因為指標是 p與 s是int,因為指標p c,即 p c 0 那麼 p 1 c 1 指標之間的加減運算是根據指標的型別進行調整的,所以雖然s p地址之間相差20,但是這兩個地址之間只相差5個地址。倘若你把 p與 s改成short或char型別,那麼答案卻變成了10或20了 028.5e 3 可以,但...

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

沒有縮排,看來比較累 但是輸入一串字元以後要輸入結束標誌eof表示你的輸入結束了 如果你是unix,就用ctrl d,dos就用ctrl z include define maxline 1000 maximum input line length int getline char line,int...

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

把檔案中所有逗號用空格替換。把if fp fopen goods.dat rb null 改成fp fopen goods.dat r null 把 feof fp 換成 0。把 一行刪除。以上3 4也可以在while前新增一行 解決 把printf s,2s,d,d n name,price,in...