int a 31,2,34,5,67,8,9中a是不是常量,為什麼

2021-04-30 04:51:37 字數 2865 閱讀 1480

1樓:風若遠去何人留

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

這是一個3*3的二維陣列. a[1]是a[1][0]的地址,即第二行首地址. 可以認為是常量指標.

型別相當於int *型.

q=a[1] 型別匹配. 可以賦值.

而&a[1] 並不是int **型, 而是一個陣列指標, 型別為int (*)[3].

所以 int (*m)[3];

然後m=&a[1];

這樣賦值才是正確的.

2樓:

a[1]代表的是第一行元素的首地址或就是一個指標,本身就是一個地址,可以直接賦值給指標

3樓:匿名使用者

&a[1]的型別是 int(*)[3] 不是int**,所以p=&a[1]是不行的

這樣就可以

int (*p)[3]; //p是個指向長度是3的一維int陣列的指標

p=&a[1];

a[1]是個地址,他是個右值(嚴格來說是個常左值),把他看作常量也行

4樓:海濤

a[1]是變數,因為你可以對這個量進行改變,比如a[1]=;

第二個問題大概原因是 a 是一個const **

5樓:匿名使用者

&a[1]是int(*)[3]常量,a[1]是int*常量,所以 q = a[1]正確,你可試試定義int (*p)[3]; 則p = &a[1]正確。int (*)[3]和int*區別是,前者地址單元長是3個int,後者是一個int,如下面**:

int (*p)[3], q;

cout << int(q + 1) - int(q) << endl; // 輸出結果為4,即1個int的長度

cout << int(p + 1) - int(p) << endl; // 輸出結果為12,即3個int的長度

至於&a為啥是int(*),c標準就是這麼規定,一維陣列也一樣,int a[1],則a是int*常量(所謂指標常量可理解為地址),&a是int(*)[1]常量。

加點分。

void main() { int a[3][3]={{1,2,3},{4,5,6},{7,8,9}}; foo(a); printf("%d",a[2][1]); }

static int a[3][3]={{1,2,3}{4,5,6}{7,8,9}};那麼a[1][2]的值為?怎樣判斷?如果是 a[2][3]呢?

6樓:草柏渡

a[1][2]=9

a[2][3]是不存在這個陣列裡的。

其實很簡單。定義時時a[n][m],中表示n行m列找其中的值時,對應的是a[0][0]表示第一個數。所以上面的a[1][2]表示第二行第三個數。

7樓:匿名使用者

a[1][2]值為6

不存在a[2][3],因為定義static int a[3][3]下標範圍是a[0][0]到a[2][2]。

按你的初始值對應的是:

a[0][0]=1;

a[0][1]=2;

a[0][2]=3;

a[1][0]=4;

a[1][1]=5;

a[1][2]=6;

a[2][0]=7;

a[2][1]=8;

a[2][2]=9;

8樓:匿名使用者

a[1][2]=6

a[2][3]=越界

有以下程式, #include main() {int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};int b[3]={0},i;

9樓:聽不清啊

#include

main()

,,};

int b[3]=,i;

for(i=1;i<3;i++)

b[i]=a[i][2]+a[2][i];

for(i=1;i<3;i++)

printf("%d",b[i]);

printf("\n");

}程式執行後的輸出結果是(1418)

這是因為b[1]=a[1][2]+a[2][1]=6+8=14b[2]=a[2][2]+a[2][2]=9+9=18而輸出時沒有空格,所以14與18就連起來了。

10樓:1997排長

a[i]是指a陣列的第i項元素,沒有什麼執行不執行的。

a[i]++就是把該元素+1了。

如果有這樣的語句:x = a[i]++; 那麼才是先把該元素賦值給 x,然後該元素自己+1。

注:a[i]++ 是個表示式,其值為 a[i] 的原始值,這個表示式求值後,a[i]自身+1。

11樓:徐鼕鼕

#include

int main ()

;for (i=1;i<3;i++)

for(j=i;j<3;j++) printf("%d",a[i][j]);

printf("\n");

}陣列a[3]是由a[0][0]~a[2][2]組成的,第一層迴圈取 i 為1,而j等於i開始就是a[1][1]=5,a[1][2]=6,第二層迴圈i為2,j等於i開始就是a[2][2]=9了,輸出結果是569.

12樓:

#include

main ()

;for (i=1;i<3;i++)

for(j=i;j<3;j++) printtf(」%d」,a[i][j]);//a[1][1]=5,a[1][2]=6,a[2][2]=9

printf(」\n」);}

我是不是你最疼愛的人這首歌是為誰寫的為什麼這麼悲傷

我是不是你最疼愛的人 由小蟲因為一位老爺爺對自己妻子的思念而有感寫的。小蟲在學校附近向一位老先生租了一間房子。每天黃昏時,這位老先生就會拿著小板凳,坐在院子裡望著天上的白雲笑,嘴裡還唸叨著 雲啊,雲啊 後來小蟲才知道老先生去世的妻子的名字就叫做雲,但老先生還一直念念不忘,而且老先生也特別喜歡潘越雲的...

是不是男生太優秀了會給女朋友帶來壓力?為什麼

肯定會啊,你沒見現在很多男生都是優秀了,周圍就會來很多有目的的女生使出一切手段來搶走了嗎?你女朋友是怕你被搶走啊,定力不夠也許就不會和她在一起了,所以她肯定會有很大的壓力,甚至還會疑神疑鬼,怕你和同樣優秀的女生說話,被別人吸引,這恰好說明她很在乎你。是的,一個女生 的男友比女生優秀會讓女生沒有安全感...

exo的粉絲是不是很賤啊,exo的粉絲為什麼那麼賤,居然侮辱sj?

親,其實這張 就是合成的。不管你是否喜歡這個組合,請不要隨意否認他們背後的努力。也許你不知道,他們為了將自己最好的一面獻給眾人,播撒了多少汗水。在這麼紅的情況下,還能不擺架子不耍大牌,對於明星這類公眾人物來說是多麼不易。鹿晗在運動會結束後撿起了垃圾後才離開的,d.o會關心自己粉絲不受寒風,伯賢和世勳...