51,3,5,7,9pa,則表示式p3的值是怎麼算的

2021-05-29 02:53:42 字數 1895 閱讀 1388

1樓:匿名使用者

表示式*p+3的值是4

*p是指向陣列a的指標,*p=a就是把p指向陣列a的首地址,也就是a[0]的地址。

所以*p的值就是a[0]的值,也就是1,所以*p+3的值就是1+3=4了。

不清楚的話請追問我。

o(∩_∩)o 望採納 哦 ~

2樓:葷三詩義斯

inta=,

*p=a;

//將首個元素地址賦給p

此時*p=1

while(*p!=3)

所以結果為7的表示式是:

*(p+2)

等價於*(p+4)

3樓:匿名使用者

當指標p被初始化時,其被賦值陣列a的首地址,即a[0]的地址

*p+3後便指向了a[3],

設有定義int a[]={1,3,5,7,9},*p=a; while(*p!=3) p++; 結果為7的表示式是: *(p+2)能否詳細解釋下

4樓:匿名使用者

int a=,*p=a; //定義一個陣列a,共五個元素;同時定義一個指標p指向陣列a的首地址

p -> a[0]=1 即p是a[0]的地址p+1 -> a[1]=3 p+1是a[1]的地址,下同p+2 -> a[2]=5

p+3 -> a[3]=7

p+4 -> a[4]=9

while(*p!=3) p++; //*p是取地址中的內容(資料),當*p不是3時,p++完成向後移動一個資料

當*p==3時,p當前值為 原p+1 ,即指向a[1]此時的p +1指向a[2]=5

所以,此時的p +2指向a[3]=7

即:*(p+2)==7

5樓:lzh劉振華

int a=,*p=a; //p為指標,p指向int型陣列a的首地址即 &a[0]

while(*p!=3) // *p 是p所指向的陣列的元素 ,當*p 的值是3時退出while迴圈

p++; // p指向陣列a的下一個元素。

當while迴圈結束時 p 指向 a[1]的地址,*p == a[1];

p+2 指向 a[1]下一個元素a[2]的下一個元素a[3],即p+2是指向a[3]的指標,所以*(p+2) 的值是7

6樓:匿名使用者

int a=,

*p=a; // 將首個元素地址賦給p 此時*p=1

while(*p!=3)

所以 結果為7的表示式是: *(p+2) 等價於 *(p+4)

7樓:孝感

初始時p指向a陣列的開始.

經過while(*p!=3) p++;

時p指向了3

所以p+2就是指向7這個位值.

若有以下定義和語句則++(*p)的值是__6__.

8樓:覺悟壯志

p是a[2]的地址

但是*p是a[2]的值,是5

那麼++(*p)

是自加那麼就是6

9樓:匿名使用者

樓上回答很好。

int a[5]=,*p;

等價於int a[5]=;

int *p;

即p是一個指向整型的指標就好理解了

10樓:汗晚竹紅鸞

a因為p+=2

是p=0+2

,指的是陣列中的第二個元素。而*(p++)是p+1

,*(p++)表示第三個元素的值。故選a。

設有定義語句「int a 10,p a則表示式「a p」的值是

結果是20啊 p就等於a啊 我用程式給你測試了 void main 不確定,p中儲存的是a的地址,且 p沒有分配儲存空間,可能導致程式崩潰。在int a 10,p a 語句中,p的值是 答案是 c 變數 p 應該是個二級指標 int p c語句int a 10,p a 則 p 1的值是 11 p a...

若已定義inta1b2c3則表示式abc的值為

1 按照運算子優先順序,的優先順序大於 所以先計算b c的值,應為b 2,c 3,所以這個表示式的值為假,也就是值為0.然後將b c的值賦給a,那麼執行a b c之後,a 0 2 第一個方式不正確,第二個左值不能為表示式,第三個正確,第四個左值不能為表示式 第一個 先計算b c 不相等,為0.然後賦...

若有以下定義intx3,y2,則表示式yxy後的y值為

y y x y y y x x y y y x 3 2 此時,x 1y y 1 y 2 1 y等於3,x等於1 一步一步來y x是5 5 y是多少呢就出來了 答案是3。c語言 已有定義int x 3,y 4,z 5 則表示式 x y z 1 y z 2的值是?答案是1。涉及到的運算子 運算子優先順序...