1樓:匿名使用者
c.*p+2
沒有乙個是指向a[2]的,但c的結果是1+2=3
若已定義:int a[5]={0,1,2,3,4},*p=a,則以下輸出結果為3的是()
2樓:自我程式設計
選b。p[3]等同與a[3]。
陣列的名字a,是表示陣列首位址的位址常量。其值就是&a[0];
*p=a;那麼p的值也是內&a[0];
p和a都表示位址容,所以*就是取位址對應的值。
(a+2)就是首位址值往後+2的位址,也就是&a[2],那麼*(a+2)就是a[2]的值2。
同理*(p+2)也是a[2]的值2。
*p[3]是不對的,p[3]不是位址是值。
注意:這裡p和a值一樣,但意義不同。p是指標值可以改變,a是常量不能改變其值。
所以p++可以,a++不行。
3樓:劉淘冬
概念:
這裡的*是指標的識別符號,*p就代表p是乙個指標。
*p=a,完整的寫法應該內是,int *p=a;*代表p是乙個指標,int 是指標p指向的容資料型別是int型,即整型。
因為p是指標,p=a,也就是p獲取了a的起始位址(不懂可以看看指標的定義)
*p可以理解為把指標p指向的位址裡面的數字表示出來,這裡p指向a的初始位址,a的初始位址裡放的是0,所以*p就是0,p[1]表示在p的位址上加1,因為p指向a的初始位址,也就相當於就是a的位址上加一,是a[1],所以*p[1]就是1,所以*p[3]就是3,很明顯選d
4樓:c語言基礎
&:取位址符
*:間接運算子
&變數:取變數的位址
指標[下表]等效陣列名[下表]等效 *(指標+下表)綜上所述:答案選b
有定義inta[5]={1,2,3,4,5},如有int*p=a,則*p的值,*(p+2)的值
5樓:八千漢字
*p = a[0], *a ,*(a+0) , p[0] 都是 陣列的第乙個元素1
*(p+2),*(a+2),a[2],p[2],都是 陣列的第三個元素 3
a 和 p 的差別就是 a指標是常量 無法做改變指標值,p是變數
6樓:匿名使用者
int *p=a.的意思是 *p=a[0] *(p+2)=a[2]
20懸賞!!**等!若有以下定義:int a[]={1,2,3,4,5,6,7,8,9,10},*p=a; 則值為3的是( ) 20
7樓:匿名使用者
*p=a,陣列名表
bai示位址,該
du句話的意思就是p=&a[0],p+=2表示p=&a[2];
接下zhi來我們看看* ++的優dao先級版,兩個優先順序是一樣的,屬於右權結合。*(p++)首先計算p++,由於++在後面,所以*(p++)相當於計算*p,然後p++;所以a和c相同,至於d ++*p表示++(*p),將*p的值++。我不知道樓主用的什麼編譯器。
對於我的理解,如果是printf(「%d」,*(p++))這種樣式輸出的話,a 輸出是3,b輸出是4,c輸出的是4,d輸出是4
8樓:匿名使用者
應該是a,*(p++)和*p++是一樣的,都是先算p++【為p】然後算* 符【為*p=3】最後p自加
這是* 和++的右結合性。
已知:int a[]={1,2,3,4,5,6},*p=a;下面表示式中p值為5的是___ ___。
9樓:聽不清啊
表示式中 *p 值為5的是___ (a)p+=3;*(p++); ___。
10樓:匿名使用者
(a)p+=3;*(p++);
int a[3][2] = { 1,2,3,4,5,6 }, (*p)[2]; p = a; printf("%d\n",a); printf("%d,%d",*a,*a[0]); } 50
11樓:匿名使用者
二維陣列
可以當成每個
元素都是乙個陣列的一維陣列
比如a[3][2] 可以當作乙個一維陣列a[3], 但是a[3]的每個元素回都是答乙個一維陣列..
那麼就好理解了 *a是a[0],但是a[0]自身是乙個一維陣列,並不是乙個數
所以*a[0], 或者**a 才是這個一維陣列的首個元素的值
12樓:匿名使用者
二維陣列的首位址是
來二級自指標,二級指標就是指bai針的指標,du意思就是乙個指標指向了另一
zhi個指標。
假如:int **b , *a; b = &a; 所以dao*b中存放的是指標a指向的位址值, b就是a的位址值。
所以這裡的**a 和*a就是這個道理。這裡*a就是第一行首位址的位址值
13樓:哥德**的憂鬱
a是乙個二維陣列的首地抄址,*a是對a相當於進行了一次降維,所以*a是一維陣列的首位址,也就是a[0],這麼說吧你可以把a[3][2]看成這樣子, },所以a指向的是這一整個陣列,*a指向才是陣列裡的乙個元素,所以再對*a進行*運算,也就是**a,才會是第一元素的值,如果不懂歡迎追問哦。
14樓:育知同創教育
二維陣列不應該是**a才能取到1嗎?
15樓:王子易
你這什麼,題目看不懂
若有定義 Int a 10p a,則 p 5 表示()
選a 因為 p a,這時是把陣列a的首位址傳給了指標p,而陣列的定義是從a 0 開始的,所以p 5表示的是元素a 5 的位址,希望你現在明白了 b p 5 表示p 5這個位址指向抄單元內容,當然是int的,所以不是位址 p a 的賦值後,p存放的位址就是陣列起始位址也就是陣列元素a 0 的位址,p可...
若定義陣列inta1,2,3,4,5,6則此陣列元素a
a 2 3 陣列中第三個元素 a a 2 a 3 4 陣列中第四個元素 int a 值 1 2 3 4 5 6下標 0 1 2 3 4 5計算a a 2 分兩步,先計算a 2 那麼a 2 對應的值是3,接著,計算a 3 4答案就是4了 實際上你可以看成是,int temp a 2 然後求 a tem...
若有定義 int a,b則表示式 a 2,b 5,a
b 的意思是 先將b的原值帶入本條語句執行,然後再自加,這裡本條語句為b 即什麼也不做,然後自加 如果換成c a b 則c 7 而不是8 float a b 2 得到浮點數2.5 int x int y,因為把x,y強制裝換為其實就是3墨2得到int數1 結果是3.5 先掃瞄逗號表示式 結果是8 3...