int a的a不是代表指標a只向位址的值嗎?比如i 4,a i,那麼a i 4嗎?那麼下面的a或 a怎麼是位址

時間 2021-08-30 11:19:49

1樓:匿名使用者

首先你要知道你這張表對應的是二維陣列,陣列和指標有著密切的聯絡,但有本質上的區別。

先說陣列,陣列在計算機的記憶體上開闢了一段記憶體,其大小取決於陣列宣告的型別。(這個你懂吧,)這個記憶體的首位址就是陣列的名字 。如一維陣列 int a 開闢了十個記憶體單元用來存放十個int型。

這個陣列會有乙個首位址,它就是a的值。

對於二維陣列而言 int a,你可以把它看成10行10列的矩陣,我們也常說它是陣列的陣列。a也是這個陣列的首位址, 而a 是第一行的首位址(我想你的問題在這裡),而&a才是0行0列元素的位址。這三個位址的值是一樣,但它卻有著不同的含義。

**和一樓都說錯了。

編譯器是這樣工作的,宣告二維陣列時,在第一維【n1】的後面放置【n2】,編譯器就會建立乙個大小為n1的陣列,他的每個元素是乙個大小為n2的陣列。而陣列的名稱就是他的位址。 a 就是在引用乙個子陣列的位址。

因為它是子陣列a行的名稱。

指標和陣列最大的區別在於:可以改變指標包含的位址,但不能改變陣列名稱引用的位址。所以我們可以用指標遍歷整個陣列。

說的不好的請多指教,共同學習。

建議你看 ivor horton 寫的 c語言入門經典這本書。國際權威。他是世界的譚浩強。寫的要比國內的著作好很多。如果你旨在學懂而非應試,建議你看這個。

2樓:匿名使用者

陣列的a【】的a 是陣列名 也代表該陣列的 位址所以*a 就是取出該陣列第乙個 位址的值 如果是二維當然 a【i】【i】 a【i】 就是a【i】行的首個數值的位址 那麼*a【i】同樣是取出該 數的值 a因為是位址 所以(a+1) 就是該陣列下乙個數值的 位址 *(a+1)同樣也是取值。。。 int *a 的*只是定義 a是乙個指標 在單獨使用的時候是 類似於取出該位址的值的 作用。。。希望我說的對你能有幫助。。

3樓:

第二行,第二列。0行0列元素位址。錯誤!應該是「0行0列的值」

書不一定正確,能發現書的錯誤,並且很確定它是錯的。那你就牛b了,目前看來你需要提高啊

4樓:匿名使用者

a宣告得不一樣,你不把a的宣告貼出來誰知道是什麼東西

照這張圖推算 ,a應該是二維陣列,裡面存的是指標,就是乙個指向指標的指標

5樓:匿名使用者

這是二維陣列。 根據上表可以推測出宣告的大致形式:int a[?

][4];ps:這個什麼系統下的哦,int竟然佔2個位元組。xp下應當是4位元組才對。

嘛,算了,按2位元組來分析吧。

具體看下來是沒有錯誤的。

*a或*(a...)怎麼是位址。:因為這是個二維陣列啊。因為一位陣列的話 a[i]==*(a+i);

所以嘞,到二維陣列時:a[i][j]==*(*(a+i)+j);於是啊,*(a+i)+j的話就是指標變數了的說。順便補充下,這個和int **p;可是非常的不同呢。

(嗯,我是這麼認為的)

話說,二維陣列什麼的還是稍微有點難度的,不建議初學者去深究的說。

int a[3][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; int * pa[3]; int * p = *a; int i; for (i=0; i<3; ++i)

6樓:匿名使用者

*a不是首個元素,而是首個元素的位址或者也可以看做首行元素的起始位址注意a是二維陣列名,要是a是一維陣列名的話,*a才是首個元素的值我不知道lz學c的時候你的老師有沒有這樣告訴你,其實二維陣列可以看做乙個各個元素是一維陣列的一維陣列

也就是整體上看做一維陣列,每個元素仍是一維陣列那麼對於一維陣列a而言,陣列名a可以視作首個元素位址,*a則是首個元素的值

那麼同理對於二維陣列a,*a不就是大的一維陣列的元素,也就是小的一維陣列的位址了麼

7樓:狂

變數p是乙個指標,存放的是位址,將乙個值傳遞給給指標變數在語法上是沒有錯誤的

有定義語句:int a[4][10],*p,*q[4];且0<=i<4,則錯誤的賦值是

8樓:火虎

a。p的型別是int *,a的型別是int (*)[10],型別不符,不能賦值。將確定的數值賦給變數的語句叫做賦值語句。

各程式語言有自己的賦值語句,賦值語句也有不同的型別。所賦「值」可以是數字,也可以是字串和表示式。

9樓:

你定義的a[3][2]是二維陣列,有6個元素,但初始賦值只有5個被賦值了,

最後乙個未賦值的預設就是0了。

int *p是一維指標,而a是二維的,故不能賦值。

10樓:墨派

p=a是正確的!無論是一維陣列還是幾維陣列,陣列名代表的是陣列的首位址,其根本上就是乙個指標,而p又是指標,二者當然可以互相賦值!

11樓:

按c的規則,上題中p=a的指標賦值語句是錯誤的,它試圖把乙個二維陣列指標賦給乙個int型變數指標。指標不只是個位址,它還承載有更多的資訊:它指向的元素佔多少位元組?

元素中有無巢狀元素?有無函式?所有元素的儲存性質……等等,都包含在指標中。

如果指標只是個位址的話,那就沒有int*、char*、double*、struct*、file*、(*)()……之分了,因為它們都是個位址!相信上面貼的**在vc++下是不能通過編譯的。如果執行結果是123340的話,應該是p=a[0]賦值後的結果,因為題中a[0]是具有10個int元素的陣列的首位址,剛好與int *p匹配!

當然a[1]、a[2]、a[3]也與p匹配,但不會打出123340來……

12樓:嶺路西

不是啊 應該是b錯誤 a是正確的 陣列賦值給了指標要不怎麼能輸出正確的結果呢 呵呵

女生會向男生訴說自己的煩惱和不愉快代表著什麼

那是女生感覺男生變得親切了啊 說明關係更進一步了 女生應該是個靦腆的人吧,所以不主動打啊 這種事兒就是要男生主動嘛 螺 旋 他們是朋友。很要好,至少說是女生在難過傷心的時候第一時間會想到的。而且女生很寂寞。沒有人刻意訴說了。相信我,這裡沒有愛情。更多的是友情,依賴。 她開始依賴這個男生了,一旦男生離...

英格蘭隊徽上的三隻獅子代表什麼

英格蘭國家隊隊徽是由三頭獅子及十朵薔薇花組成。隊標裡面的十朵花是薔薇花,薔薇俗稱 白玉棠 或 十姐妹 說它是 十姐妹 主要是因為在 五 六月份花開季節,九 十朵淡粉色薔薇花總是簇擁在一起盛開,格外美麗。而且薔薇花是英格蘭的國花,她分別代表紐卡斯爾 倫敦 利茲 利物浦 曼徹斯特 謝菲爾德 伯明罕 布里...

結束是不是就代表著新的開始,結束是不是就代表著一個新的開始

一陰一陽之謂道.如果沒有開始就無所謂結束,同樣如果沒有結束也就無所謂開始.開始就是結束.結束又是一個開始. 狠得下心麼?真的能做到嗎?愛他 她就把他 她放在心裡吧。結束是不是意味著新的開始? 居萱摩書凝 新的開始還代表新的結束 有開始就有結束 哈哈這還用問 你腦袋壞掉了 賈炎祝吉 每個結束都代表新的...