C語言若有定義語句 int a 41,

2021-04-18 21:59:28 字數 4164 閱讀 2318

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...