main 中有陣列定義int a 93,5,

時間 2022-02-09 00:40:06

1樓:匿名使用者

是c語言的麼? 如果是c#的話我倒會做 c語言。。沒學

陣列定義如下:int a[10]={1,2,3,4,5,6,7,8,9,0};請輸出陣列a的首址和下標變數a[0]的地址,二者是否相等?

2樓:匿名使用者

陣列名就代表著陣列的首地址,這裡a就是陣列名,即陣列的首地址,而a[0]是陣列中的第一個元素,它的地址當然就是這個陣列的首地址了,所以陣列a的首地址和a[0]的地址相等。

**如下:

#include

int main()

;printf("陣列a的首地址為\t%d\n",a);

printf("a[0]的地址為\t%d\n",&a[0]);

return 0;

}執行結果為:

3樓:匿名使用者

那肯定相等了

#include

int main()

;printf("%d %d\n",a,&a[0]);

if(a==&a[0])

printf("二者相等\n");

else

printf("二者不等");

return 0;}

main( ) {int a[ ]={1,2,,3,4,5,6,7,8,9,0},*p; p=a; printf("%x\n",p); printf("%x\n",p+9);的運**況。

4樓:

printf("%x\n",p); //p指向a[0],其值為地bai址值,這個值du由作業系統管zhi理,人不能確dao定。

printf("%x\n",p+9); //p+9的值

應該比p的值大專36,因為,在32編譯系屬統中,整型佔四個字個。第9個整型元素應該在第0個元素後面4*9=36位元組。

5樓:匿名使用者

我的結果是(每個電腦的結果有可能不一樣):

12ff58

12ff7c

你的程式應該是:

#include

void main( )

,*p;

p=a;

printf("%x\n",p);

printf("%x\n",p+9);

} 程式註釋:p指標指向陣列

專a,那麼p就是陣列a的起屬始地址12ff58,那麼p+9就是陣列中元素a[9]的地址。因為每個整型數是四位元組,所以a[9]的地址是p+4*9,寫成16進位制就是12ff7c。

6樓:晁誠琴釵

你的程bai

序的確很繞啊。du但是在我想了一下換是

zhi明白了。:

你只要dao把你每次改變b記下版來就明白了我給你說

權10吧

28也是一樣的

首先b=

2;之後fun函式傳過去了a[2]的地址就是3,經過運算函式返回了b的值是5

,在接著就是

b=fun(&a[i])+b;這句

最後b就被改寫成了10了

最後輸出就是10

第二次迴圈b的值是10

不是2這個關鍵的

那28也就是這個道理了。明白了吧!!

這裡我就是說一下為什麼第一次迴圈是10

因為你的程式只是執行了一次,所以b的初始化只經過一次。要想在變成2,就要重新執行程式,這時候b在進行初始化,變成2.好了就這樣了!!!希望對你有用!

希望對你能有所幫助。

main() { int a[]={1,2,3,4,5,6,7,8,9,0},*p ; p=a;pri8ntf("%d",*p+9); } 次程式的結果為什麼是9?

7樓:天雲一號

我執行出來結果是10 環境是vs2008int a=,*p;

p=a;

printf("%d",*p+9);

8樓:匿名使用者

這個結果對嗎?應該是10才對。

c語言的陣列問題{a[0]=a{1};} main() {int a[10]={10,9,8,7,6,5,4,3,2,1}

9樓:匿名使用者

a可理解為指標

抄首先i = 2,a[2]可以理解襲為指向陣列的第三個值,傳到函式裡面a[0]自然就是外面的a[2]了

避免混淆形參和實參,可以將

void fun(int*a) 寫成

void fun(int* p)

這樣的意思就是p所指向的地方,即a[2]的值等於a[3]的值,其餘i = 1、0都是一樣的,將陣列前3個的值換成陣列第四個值

10樓:匿名使用者

這個函式的功能是copy將輸入的指標

bai所指向的後一個變數du賦給指標指向的變數。第一zhi個for迴圈,i為2滿足條件,dao將a[3]賦值給a[2],陣列變為,同理第二次迴圈陣列變為,第三次為,執行此次迴圈後退出第一個for迴圈。第二個for迴圈為輸出陣列的值,因此答案為7777654321。

11樓:匿名使用者

fun(&a[i]);

傳入的是一個值的地址,不是陣列地址。此函式無法工作的

12樓:稅穎漢夏蘭

定義陣列並賦值時baic語言規定du下標是這樣的,a[n]中的n個元素

zhi應該是daoa[0]....a[n-1],由此可見答案b中a[10]已經

專超過規定的範圍,屬故不能表示陣列a中的元素。答案a中因為指標p指向陣列首地址,所以*p相當於a[0]這個元素

若有以下定義和語句: int a[10]={1,2,3,4,5,6,7,8,9,10},p=a; 則不能表示a陣列元素的表示式是( ) a) *p b)

13樓:墨汁諾

不能表示a陣列元素的表示式是( b) a[10] )----因為陣列a的最大下標只能是9,即a[9],

a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],一共10個元素。

a、*p  ---表示取p指標指向的單元的值,即表示取陣列a的首個元素a[0]的值。

b、a[10] ---因為陣列a一共10個元素,從0開始計數,

即a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],正好10個,沒有a[10],所以a[10]就是不能表達這個陣列元素。

c、*a ----陣列名a中儲存的是陣列的首地址,*是取單元中的值,*a就是取陣列首地址中單元中a[0]的值。

d、a[p-a] --- p指向的是陣列a,因為p中與a同資料相同都是陣列a的首地址,而p-a就等於0,因此 a[p-a]就相當於a[0]。

14樓:匿名使用者

選b)a[10] a[0]、a[1]、a[2]……a[9]分別是陣列a[10]的十個元素,故a[10]不能表示a陣列的元素。

15樓:匿名使用者

選 b a[10]

陣列是從a[0] 到 a[9] 的。。。。。。

定義如下變數和陣列: int k; int a[3][3]={1,2,3,4,5,6,7,8,9}; 則下面語句的輸出結果是 。" for(k=0;k<3;

16樓:

a是 123

456789

a[0][2] 就是第一行第三個 3

a[1][1] 就是第二行第二個5

a[2][0] 就是第三行第一個 7

陣列下標是從0開始的

17樓:匿名使用者

這是一個三行三列的二維陣列

陣列的下標是從0開始算起的

第一次 是 [0][2] 即第一行第三列 也就是3第二次 是[1][1]即第二行第二列 也就是5第三次 是[2][0]即第三行第一列 也就是7

18樓:我不廢了

就是ls說的。很明白。給他分吧。

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

19樓:

foo(a);是用a呼叫函式foo,在foo中b就指向了a[0](就是a陣列中的1的位置),++b使b指向了a[1](就是a陣列中的4的位置),即現在的b[0]指向4、b[1]指向7;那麼,b[1][1]顯然就是元素8,b[1][1]=9;的語句把8改成了9。函式返回後,輸出的是a[2][1],就是定義中的8的位置,可是剛才在foo中不是把8已改成9了嗎?所以輸出是9。

怎樣打出圓圈中有數字,怎樣打出圓圈中有數字21?

精彩每一天 1.選擇選單 格式 2.選擇 中文版式 3.選擇 帶圈字元 在對話方塊文字中輸入數字21,點確定即可。拓展延伸 1.當改變帶圈字元的 字號時,因 圈號和圈內字元的字號變為同樣大小,結果導致字元溢位圓圈之外。解決方法為 選中此帶圈字元,重新開啟 帶圈字元 對話方塊,選擇 縮小文字 樣式或 ...

c怎樣 定義 陣列,C 裡怎樣定義一個常量陣列?

c 中定義陣列。一 一維 int numbers new int 不定長int numbers new int 3 定長二 多維 int numbers new int 不定長 int numbers new int 2,2 定長 c 中陣列有五種宣告方式 一,宣告一個未初始化的始祖,將其轉換為一個...

自己心中有數的成語,心中有數 成語

崔綺琴 胸有成竹 xi ng y u ch ng zh 解釋 原指畫竹子要在心裡有一幅竹子的形象。後比喻在做事之前已經拿定主意。出處 宋 蘇軾 文與可畫篔簹谷偃竹記 故畫竹,必先得成竹於胸中。結構 主謂式。用法 用作褒義。形容人做事很有謀略。一般作謂語 定語 狀語。辨形 竹 不能寫作 足 全域性在胸...