1樓:輕曳風鈴
*(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後再使用加後的值
2樓:苓愛你無言
*p=a中的a就是&a[0],即a[0]的地址,所以*p(p+1)=a[1]的值,即為3
3樓:匿名使用者
p指向a的首地址,所以*(p+1)=a[1]=3
c語言……….若有定義語句:int a[4]={1,3,5,7},*p;p=a;則*(p+1)的值
4樓:棟玉蓉弓琴
*(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 a=3, b=2, c=1; 以下選項
5樓:滄海雄風
a錯了,不能將3賦值給表示式,b=4已經是個表示式了,既然是表示式就只有真假(即0和1),
而 (a=3*5)=4*3 中的a=3*5 是賦值
6樓:匿名使用者
我在vc++6.0中貼上你的**,編譯執行都通過#include
int main()
結果2 4 4
7樓:匿名使用者
賦值語句的物件只能是變數,而不是表示式 b=4已經是個表示式。若換成a=b=3,就對了。
對於b,最後的值:a=2,b=2,c=1
對於c,整個語句是個賦值語句,裡面又巢狀了個b=4的賦值語句,所以,最後的結果是a=5,b=4,c=1
對於d,解法同c,a=5,b=4,c=4.
所以a 是錯誤滴。
c語言中int x=5 *p=&x *p+1的值
8樓:匿名使用者
c是指標變數,&p是表示其地址;而x未賦值,所以&(x+1)是錯誤的 if(x=y)中的x
9樓:匿名使用者
相當於:x+1;
結果為:x=6
10樓:好程式設計師
你寫錯了吧,感覺有點亂,你看看錯了嗎
若有定義:int a[]={2,4,6,8,10,12};*p=a;則*(p+1)值是(),*(a+5)的值是()
11樓:匿名使用者
恭喜你 答對了,呵呵。其實這個問題你只需要在vc的編譯器上執行下就可以知道了,而且多動手寫程式可以調動積極性。
c語言 若已定義:int a[3][4]={1,3,5,6,9},*p=a[2];則p-a的值是 ()?求過程
12樓:匿名使用者
p是指向陣列第三列的地址值
a是指向陣列第一列的地址值
所以 p-a 其實就是兩個地址的差值,實際就是前兩列資料所佔的儲存空間 4*2*2=8個位元組
13樓:匿名使用者
a[2]是在第三行開頭嘛,一行4個,兩行就是8
c語言題:若有定義int a[9],*p=a;則p+5表示( )
14樓:匿名使用者
答案選:b
剛剛看到a[5]就選了
*p=a;指向的就是a[0]
p+5就相當於向後移動5個,就是a[5],表示地址如果是*(p+5),就表示值
15樓:匿名使用者
你好,選b。
int *p = a表示指標p指向陣列a的首地址。也可以說是a[0]的地址。所以p+5指向a[5]的地址
c語言 定義則執行y=(*--p)++後,y的值是
16樓:佼赫然閎竹
這好解釋啊,因抄
為++是後++,要等襲到把(*--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語言 int a[4] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, *p1; *p=a[0]; *(p++)是什麼意思。
17樓:匿名使用者
瞎寫肯定錯誤多,先改正確:
int a = , *p; //中的4是多餘的。
指向a[0]。
printf("%d\n",*(p++)); //*(p++)等價於*p++,表示取p所指元素的值,p再指向下一個元素,因此,這兒輸出0。
18樓:匿名使用者
*(p++)的意思是對p取值,並且在該行語句執行結束後移動指標累加。
例如*(p++) = 1;
就是將1寫入當前p指向的空間,之後對指標p執行累加。假如剛開始p指向陣列的第0元素,那麼這條語句就是將1寫入陣列的第0元素,之後將指標p指向陣列的第1元素。
19樓:
別琢磨了,這是胡寫的**:
int a[4]只有4個元素,=號右邊的{}裡卻有10個數字為其賦值,編譯器不會讓通過的。
p沒有宣告,不知是什麼,卻把它當指標為其目標賦值a[0],大錯特錯。
同樣*(p++)是編譯器不認識的表示式,因為不知道p為何物。
即便是p已在前面宣告為int *型指標了,*p=a[0];和*(p++)也是錯誤的,因為p還是沒有指向的野指標,就試圖對其指向的目標操作。
這個**行中只有*p1;是正確的——宣告瞭一個名為p1的int *型指標。
若有定義語句 int a 3,b 2,c 1,以下選項中錯誤的賦值表示式是
錯誤的是a 賦值只能賦給變數,不能賦給表示式 正確。賦值語句的物件只能是變數,而不是表示式。若換成a b 3,就對了。對於b,最後的值 a 2,b 2,c 1 對於c,整個語句是個賦值語句,裡面又巢狀了個b 4的賦值語句,所以,最後的結果是a 5,b 4,c 1 對於d,解法同c,a 5,b 4,c...
若有定義語句int a 5p a,則對a陣列元素的正確引用是什麼Aa B a 2 Cp 5 Da
正確答案是 d a 5 就是a 5 下標越界了 a就是a 0 a 0 2不是對陣列元素的正確引用同理,p 5 就是a 5 下標越界了而 a 2 就是a 2 若定義int a 5 p a 則a選項 抄中,a 5 a 5 是a 5 的地 bai址,a 5 是a 5 本身 但數列中沒有a 5 這個du元素...
若有定義 float x 1 5 int a 1,b 3,c 2,則正確的switch語句是
若有定源義 float x 1.5 int a 1,b 3,c 2 則正確的switch語句bai是 duswitch a b 所以這一題選zhi擇c。switch語句的基本形式dao switch 表示式 對於swith 表示式 中的表示式,可以控制程式的執行過程,表示式的結果必須是整數 字元或列...