對於inta123456ppap32則pp3的值

2021-03-03 20:30:22 字數 3835 閱讀 7105

1樓:懶得理你

標題中你把原bai

題寫錯了du

,陣列元

素間用逗號分隔zhi,那來dao那多冒號?

p = a ; //指明p指向

專a的首地址,a陣列和屬p為int型,所以p偏移一個單位就是移動4個位元組(一般情況下)的偏移量。

p現在指向a的首地址,所以*p的值是1,*p相當a[0]。

*(p 3)相當a[3],由於c中陣列下標是從0開始,所以a[3]值為4,因此,*(p 3)的值也是4。

答案選c

2樓:匿名使用者

bc 11,013,0x0b

3樓:匿名使用者

1、?第一題題目有問題,你隨便選吧

2、c3、11 13 b

{ int a[]={1,2,3,4,5,6};int *p;p=a;printf("%d ",*p);printf("%d ",*(++p));

4樓:玄殤隕

main()

;int *p;

p=a; //p指向的陣列

printf("%d ",*p); //*p指的是陣列a的首地址的資料就是zhi陣列的第一dao個元回素,是1

printf("%d ",*(++p));//*(++p)是先自答

加再用,p指向第一個元素,自加1後就是指向第二個元素,是2

printf("%d ",*++p); //因為p已經指向的第二個元素,再自加1就是第三個元素,是3

printf("%d ",*(p--));//p--是先用再自減,所以輸出是3,然後p自身再做自減1,

p+=3; //上一步p自減一後指向第二個元素,再後移3個元素就是5

printf("%d %d ",*p,*(a+3));/*(a+3)就是a[3]就是第4個元素就是4}

5樓:樂vov樂

main()

;int *p;

p=a;

printf("%d ",*p); //陣列a第一個copy元素是什麼,是:1

printf("%d ",*(++p));//第2個元

素是什麼,是:2

printf("%d ",*++p); //第2個元素自增1是什麼,是:3

printf("%d ",*(p--));//還是問第2個元素是幾,但是上一個表示式後,第2個元素就成了:3

p+=3; //向後移動3個位置

printf("%d %d ",*p,*(a+3));//輸出第5個元素是幾:5 輸出相對首地址偏移3個位置的元素:4 即a[3]}

int a[5]={1,2,3},*p=a;則*(p+1)的值是2 求解釋

6樓:匿名使用者

int a[5]=陣列抄在記憶體中申請了五個襲連續的地址,假設是五個方框吧□□□□□,依次存放了1,2,3,0,0;

*p=a;定義了一個指標,指向a陣列的首地址,也就是第一個方框,p+1,就是指向第二個方框。*(p+1)就是取p+1個方框內的資料,據上面分析,我們可知它是2.

7樓:匿名使用者

inta[5]=,i//定義

baiduint陣列a->5個連續的int儲存空間zhi首地址dao,按順序內

值為1,2,3,4,5;int*p=a;//定義int指標,並初始化值為a,指向容陣列首地址p+=2;//指標按int型別方式向下偏移2位,指向從a[0]->a[2],值從1->3for(i=0;i==0;i++)//for迴圈i初值為0(迴圈入口),迴圈判斷為i==0(每次迴圈前),i++為迴圈增量(每次迴圈後)cout<<*(p+2);//向cout流輸出*(p+2)的值,預設為std終端,p+2同上,指向a[4],*(p+2)為指向地址值為5。該迴圈一次後中斷

8樓:夏夜風襲

p 的值是 a 的地址,運算子 * 是定址,*(p+1) 就是 a[1] ,即為 2

設有變數定義 int a[3][2]={1,2,3,4,5,6}, (*p)[2]=a;表示式**(p+2)=*p[2]的值?

9樓:潘良段幹宛菡

(*p)[2]=a表示來

將p定義為一個指向自

含2個元素的一維陣列的指標變數,那麼二維陣列就可以看作是一維陣列a[3],其中每一個元素都是一個一維陣列,a[1]=,a[2]=,a[3]=;

則p+2就指向了a[3],*(p+2)是a[3]的首地址,**(p+2)就是a[3]的首元素,即為5。

10樓:匿名使用者

**(p+2),*p[2]這兩個表示式是等價的,當然,**(p+2)=*p[2]是一個賦值表示式,最終的值還是a[2][0],即5

11樓:匿名使用者

作用是:a[2][0]被 a[0][2]也就是a[1][0]賦值

12樓:匿名使用者

**(p+2)的值為5

答案為什麼是5?如題 謝謝了

13樓:憽人擦

這個問題的關鍵是理解 &a a是一個陣列名,也就是陣列的首地

址。 對a進行取地址運算子, 得到的是一個指向陣列的指標 !!!!這句話尤為重要!

也就相當於 int (*p) [5] = &a; p是一個指標,它指向的是一個包含5個int元素的陣列!! 那麼執行p+1後,p的偏移量相當於 p + sizeof(int) * 5 !! 而程式中強制將指標p轉換成一個int* 那麼 p -1 其實就是 p - sizeof(int) 所以,p -1 指向了陣列中得最後一個元素,也就是 5

麻煩採納,謝謝!

#include main() {int a[10]={1,2,3,4,5,6}, *p; p=a; *(p+3)+=2; printf("%d,%d",*p,*(p+3));

14樓:匿名使用者

輸出1,6.因為抄本身陣列名也是一種襲指標,其指標型別

與陣列型別相同。陣列名指標指向的內容就是陣列的第一個元素,也就是下標為0的元素。那麼讓一個指標等於陣列名,其實就是讓這個指標指向陣列第一個元素也就是下標為0的元素。

所以*p=a[0],*(p+3)=a[3],而且是引用,所以使用*(p+3)修改的是陣列的內容,所以*(p+3)+=2;之後,就是使得陣列下標為3的元素的值+2。,所以a[3]=6.所以輸出*p=a[0]=1,*(p+3)=a[3]=6.

不明白可追問。

設:int a[3][2]={1,2,3,4,5,6},*p=[3];p[0]=a[0];則*(p[0]+1)所代表的陣列元素是a[0][1] 。怎麼算的?

15樓:匿名使用者

p[0]=a[0]

於是 *(p[0]+1) 也就是 *(a[0]+1)對於任意的*(a+b)都等效於a[b]

於是這裡 *(a[0]+1) = a[0][1]

已知:int a[]={1,2,3,4,5,6},*p=a;下面表示式中p值為5的是___ ___。

16樓:聽不清啊

表示式中 *p 值為5的是___ (a)p+=3;*(p++); ___。

17樓:匿名使用者

(a)p+=3;*(p++);

若有定義 float x 1 5 int a 1,b 3,c 2,則正確的switch語句是

若有定源義 float x 1.5 int a 1,b 3,c 2 則正確的switch語句bai是 duswitch a b 所以這一題選zhi擇c。switch語句的基本形式dao switch 表示式 對於swith 表示式 中的表示式,可以控制程式的執行過程,表示式的結果必須是整數 字元或列...

假定int a 3,b 2,c 0表示式c a b 1a1 ba b c的值是

因為a b為真所以a b 1,而1不可能大於1,所以a b 1為假,所以a b 1 0,導致 後的語句不執行,所以c 0,a 3,b 2,所以a b c 5 不懂那個表示式是什麼意思 c語言中。int a 1,b 0,c 1 執行語句 b a c 後,a,b,c 或運算,而且是左結合,b為真,整個表...

若已定義inta3,b2,c1則語句a

答案bai d在表示式中,運算步驟為 du如果你zhi不清楚,請看看運dao算符的優先順序 專1.a 則a 4 2.b 則b 3 3.c 則c 2 4.則為真 5.屬 則為直 表示式最後為真。在運算中,b只遞增了一次,所以執行後b的值為3,選d b邏輯運算又別稱 短路運算 對於p1 p2 如果表示式...