1樓:
a++和++a是錯誤的,編譯都不會過,因為陣列名是常指標。只剩下a+1和p+1了,它們在使用上是沒有區別,指向了同乙個地方,但a是常指標而p是普通指標!
2樓:匿名使用者
都不表示a[1]
a+1表示&a[1]
a++和++a都是非法p+1和a+1相同
p++和++p不一樣,前者值是p後者是p+1
c語言對於陣列a[1,3,5,7]*p+1和*(p+1)的區別
3樓:
假設p = a;
則*p = a[ 0 ] = 1
*p + 1 = a[ 0 ] + 1 = 2;
p + 1 = &a[ 1 ] //這裡的 p + 1 是指標p的指向往後挪了一位
因此 *(p + 1) = a[ 1 ] = 3
4樓:拜月
對於任意乙個陣列,
*p+1= *p指向的變數值 + 1
*(p + 1)= *p後移一次指向的新的變數值。
5樓:匿名使用者
a[1,2,5,7]
p=a;
*p +1 ==> *p 即指標p的內容, 是1, 再=1, 結果是2
*(p+1) ==》指標p下移乙個位置的內容, 即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[]={1,3,5,7,9},*p=a; while(*p!=3) p++; 結果為7的表示式是: *(p+2)能否詳細解釋下
9樓:匿名使用者
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
10樓: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
11樓:匿名使用者
int a=,
*p=a; // 將首個元素位址賦給p 此時*p=1
while(*p!=3)
所以 結果為7的表示式是: *(p+2) 等價於 *(p+4)
12樓:孝感
初始時p指向a陣列的開始.
經過while(*p!=3) p++;
時p指向了3
所以p+2就是指向7這個位值.
已知:int a[]={1,2,3,4}, y, *p=a;則執行語句y = (*++p)--;之後, 陣列a各元素的值變為?
13樓:匿名使用者
已知int a=, y, *p=a;則執行來語句y = (*++p)--;之後自, 陣列a各元素的值變為1,1,3,4 。
標準函式int(x)其基本功能是得到乙個不大於x的最大整數,如int(3.59)=3,int(-2.01)=-3。
int函式是乙個用途很廣的函式,在教學中能有目的的分列其使用技巧。
c語言沒有規定各種整數型別的表示範圍,也就是說,沒有規定各種整數的二進位制編碼長度,對於int和long。
14樓:
b正確,選b。++p使p指向了2,*++p就是a[1],(*++p)--就是a[1]--。變數y的值是2,y=a[1]--;是把a[1]的值賦給y後才對a[1]作減一運算。
15樓:匿名使用者
執行過程是p++,然後y=*p;然後(*p)--。
即p的指標位增加一,然後賦值,最後指標對應值減一,即y=a[1],然後a[1]=a[1]-1;
綜上答案是b、b
16樓:匿名使用者
先++p,p指向a[1],
再*p,=2;
賦給y,y=2;
最後*p=2,--後,*p=1
所以是b b
C 語言中,用for迴圈輸入一維陣列int a0for int i 0 i
不行,陣列必須有實際大小,才能分配記憶體 你這樣寫這個陣列就只有乙個元素 c 中我要用乙個for迴圈語句輸入一維陣列for int i 0 i include using namespace std int main c 語言當中的程式設計 for int i 0 i 5 i 這段話是什麼意思呢 1...
c陣列名表示陣列的首位址,對於字元陣列,陣列名表示什麼
int a 4 a表示a 0 的位址char str 4 asd str表示 字串 asd 非等號後面的 asd 的首位址,是版str 0 的首位址,是 a 的首位址 cout 個字串,cout對於字串就是這樣處理的,輸出字串內容 而a輸出的是a 0 的位址 cout對於非字串,就會輸出陣列名所表示...
c 中陣列型別在程式中沒有下標
以上 抄 從書寫規則上襲 來說是沒有問題bai的 c 一般情況下陣列定義 du為 int a 10 定義陣列dao並賦初值for int i 0 i 10 i printf d a i 陣列下標從0 開始 c 如何定義陣列下標 c c 中的下標,必須從0開始。比如int a 10 那麼下標範圍是0到...