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
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 如果表示式...