1樓:棟玉蓉弓琴
*(p+1)=3
樓主追問
char
s[10]
=;則strlen(s)的值為
strlen是計算字
dao符串長度,遇到
回'\0'結束返回長度,所
答以是1
struct
numn
=;struct
num*pn=&n
;則表示式pn->b/n.a
*++pn->b的值是
pn結構體指標指向結構體n,n被初始化成
pn->b/n.a
*++pn->b
<=>pn->b
=pn->b+1;
pn->b/n.a*(pn->b
+1)=3/1*2=6
結構體的->運算子優先順序大於++
++這裡是前加,先加1後再使用加後的值
c語言中int x=5 *p=&x *p+1的值
2樓:匿名使用者
c是指標變數,&p是表示其地址;而x未賦值,所以&(x+1)是錯誤的 if(x=y)中的x
3樓:匿名使用者
相當於:x+1;
結果為:x=6
4樓:好程式設計師
你寫錯了吧,感覺有點亂,你看看錯了嗎
c語言……….若有定義語句:int a[4]={1,3,5,7},*p;p=a;則*(p+1)的值
5樓:輕曳風鈴
*(p+1)=3
樓主追問
char s[10] = ;則strlen(s)的值為strlen是計算字串長度,遇到'\0'結束返回長度,所以是則表示式pn->b/n.a * ++pn->b的值是
pn結構體指標指向結構體n,n被初始化成
pn->b/n.a * ++pn->b
<=>pn->b = pn->b+1;
pn->b/n.a*(pn->b + 1)=3/1*2=6結構體的->運算子優先順序大於++
++這裡是前加,先加1後再使用加後的值
6樓:苓愛你無言
*p=a中的a就是&a[0],即a[0]的地址,所以*p(p+1)=a[1]的值,即為3
7樓:匿名使用者
p指向a的首地址,所以*(p+1)=a[1]=3
若有定義:int a[]={2,4,6,8,10,12};*p=a;則*(p+1)值是(),*(a+5)的值是()
8樓:匿名使用者
恭喜你 答對了,呵呵。其實這個問題你只需要在vc的編譯器上執行下就可以知道了,而且多動手寫程式可以調動積極性。
c語言若有下列說明和語句:int a[4][5], (*p)[5]; p = a; 則對a陣列元素
9樓:匿名使用者
如果定義int (*p)[n];p1=a;p1++後,p指向a[1][0];
則p+j將指向a[0]陣列中的元素a[0][j]。
由於a[0]、a[1]┅a[m-1]等各個行陣列依次連續儲存,則對於a陣列中的任一元素a[i][j],指標的一般形式如下:
p+i*n+j,相應的如果用p來表示,則為*(p+i)+j;
元素a[i][j]相應的指標表示為:
*( p+i*n+j) ,相應的如果用p1來表示,則為*(*(p+i)+j)。
推出以下的等價關係:
a+i == p+i;
a[i] == p[i] == *(a+i) == *(p+i);
a[i][j] == p[i][j] == *(a[i]+j) == *(p[i]+j) == *(*(a+i)+j) == *(*(p+i)+j)。
10樓:鍵盤未找到
a.表示&a[1].
b.a[3]
c.&a[1][3]
d.a[0][2]
11樓:匿名使用者
首先呢,a是二維陣列,不解釋。
然後呢,p是一個指標,什麼樣的指標呢,就是指向一維陣列的指標,而且這個一維陣列的元素個數呢是5.
然後呢,p=a;就是把p指向a陣列。
分析選項:
a p+1 .因為p是一維陣列指標,所以p每+1就是+1行。錯誤。
b *(p+3)是指第4行的首地址,訪問不到元素。需要再*c *(p+1) + 3 對地址+3 沒啦意義d *(*p+2) *p是第0行首地址 +2 呢就是第二個元素的地址,*取資料咯。
12樓:一方通通
本題中定義了一個二維陣列c和一個陣列指標p並初始化讓它指向c,顯然此時p中的各元素為地址,
a中p+1,此時的1代表的長度是整個二維陣列c的長度,p+1將讓p指向c陣列後面的元素,故不能引用c陣列中的成員,故選項a錯誤;同理,選項b和選項c都不正確,
d中p[0]+2代表的是第一行第三個元素的地址,而*(p[0]+2)將代表第一行第三個元素的值。
c語言 若已定義:int a[3][4]={1,3,5,6,9},*p=a[2];則p-a的值是 ()?求過程
13樓:匿名使用者
p是指向陣列第三列的地址值
a是指向陣列第一列的地址值
所以 p-a 其實就是兩個地址的差值,實際就是前兩列資料所佔的儲存空間 4*2*2=8個位元組
14樓:匿名使用者
a[2]是在第三行開頭嘛,一行4個,兩行就是8
c語言問題 若有說明int a[][4]={1,2,3,4,5,6,7,8,9};,則陣列a第一維
15樓:格子裡兮
若有說明int a[][4]=;則陣列a第一維是3。
定義陣列並賦值時c語言規定下標是這樣的,a[n]中的n個元素應該是a[0]....a[n-1]。。
因此int a[4]的寫法就是表示,第一維大小沒限制,但是第二維陣列大小就是4,也就是int a[4]=,,},明顯是3。
分析:二維陣列的一維大小,即指二維陣列的行數,在本題中,按行對二維陣列賦值,因此內層有幾個大括號,陣列就有幾行。
16樓:杜爺1號
答案是b,3.
int a[4]的寫法就是表示,第一維大小沒限制,但是第二維陣列大小就是4,也就是int a[4]=,,},明顯是3.
17樓:小兆
你定義的就是一個二維陣列,第二維的個數是4,為了把所有的資料能分成四份有沒有遺漏,那第一維就是3了。
18樓:寂寞的菸頭哥
首先看陣列後面為4表示有四列二維陣列是
1234
5678
9000
這裡就可以很明顯的看出是三行,所以就是a[3][4],第一個叫做第一維,第二個叫做第二維
c語言指標問題。。 若有int a[]={0,1,2,3,4,5,6,7,8,9,0},*p=a,
19樓:匿名使用者
a: a[p-a] = a[0],即bai陣列a的第一個元素。du這裡的a沒有定義,估計應該本來是zhia吧,輸入題目的dao
時候不專小心句首自動大寫了
b: a[i]是數屬組a的第i個元素,&a[i]是該元素的地址,所以*(&a[i])是該元素的值。該項等價於a[i]
c: p[i] = a[i],即陣列a的第i個元素值d: 這個是錯誤的。*(a+i)是陣列a的第i個元素值,*(*(a+i))語法錯誤
c語言 定義則執行y=(*--p)++後,y的值是
20樓:
這好解釋啊,因為++是後++,要等到把(*--p)的值賦給y後(*--p)的值才會增1。所以結果是y=1,a[0]=2。你可以用下面的**驗證:
int main(void),y,*p=&a[1];
y=(*--p)++;
printf("%d %d\n",y,a[0]);
return 0;}
C語言題目若有說明inta51,
表示二維陣列,第一個表示行數,第二個表示每一行最大容量。所以第一框為 3。c語言的陣列問題,若有定義 int a 2 3 以下選項中對a陣列元素正確引用的是 a.a 2 1 b.a 2 3 選d。一個二維陣列可以被認為是一個帶有 x 行和 y 列的 下面是一個二維陣列,包含 2 行和 3列 因此,陣...
若有定義語句int a 12,則執行表示式a a a a
a a a a,運算子和結合性,bai由運算子優 先級,du 優先順序為zhi4,和 優先順序為14,結合方向從dao左至回右,和 從右至左,所以 先計答算 a a a 12,a a 12 12 24再計算 a a a 即a a a a 12 24 12,最後計算 a a,即a a a 12 12 ...
若有定義語句int a 12,則執行表示式a a a a後a的值為
a a a a,運算子和結合性,由運算子優先順序,優先順序為4,和 優先順序為14,結合內方向從左至右,和 從右至左容,所以 先計算 a a a 12,a a 12 12 24再計算 a a a 即a a a a 12 24 12,最後計算 a a,即a a a 12 12 24 若有定義語複句in...