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。涉及到的運算子 運算子優先順序...