1樓:倚欄獨客
答案應該是b
首先a:"abcd"定義的為一個字串常量 char a定義的是單個字元變數,本身是不能賦值的。後半句話也是錯的。
正確的應該是:char *a="abcd";等價於char *a;a="abcd";
b:兩個都是定義了個字元陣列,字元陣列儲存的時候字元的後面沒要求必須是'/0' 但是多出來的儲存位元組會用'/0'補齊,比如b的情況就是 「abcd000000「 這裡的0是'/0' (我簡寫了)
c:正確的應該是:char *s="abcd";等價於char *s;s="abcd"; 跟a選項很像。
d: 看不清楚你後面的式子應該是你打錯了的。 我猜想原題目是char c[5]=d[5]="abcd";c語言裡面這種賦值是錯誤的。
應該單獨的變數賦值中間用逗號隔開 例如:char c[5]="abcd",d[5]="abcd";這樣是允許的。
我也是菜鳥,也不知道說的對不對,見笑了。
2樓:lllll木木
答案是b
a:錯。char a表示定義的是一個字元型變數引數,而char *a表示定義的是一個字元型指標,指標和變數引數是不同的,指標可以看成是房門鑰匙,而變數引數相當於房間,指標可以指向變數,如*a=b(b定義為字元型的引數)但2者不能等同。
c:錯。和a類似的問題,值得注意的是只有定義為指標後才能寫出*a=?,*a表示的是其指向的變數的值,即房間裡放的資料值。
d:錯。陣列不同於簡單變數,它不能直接賦值,必須通過一個迴圈語句實現。故不能有出現c=d這情況,這應特別記住。
b:相當於把等價於左邊的1句語句拆成右邊的2句語句實現
c語言,下列賦值語句不正確的是,下列C語言賦值語句中正確的是,不正確的是,為什麼
答案是d c語言中只允許給變數賦值所以d有歧義不對 abc 都符合語法 不能將常量賦給表示式 b c 1錯誤 下列c語言賦值語句中正確的是,不正確的是,為什麼 1全部1是正確的。c 22的值是給c賦值22 b 是先參與表示式計算,後自加。所以表示式相當於 c 22 d c b b b 1 2是不正確...
c語言問題下面程式不是無限迴圈的是
在c語言中,0為假,其他所有值均為真 a選項 判斷語句中2 0永遠成立,無限迴圈b選項 3 5 0,3 5 8,即while 8 無限迴圈d選項 while 1 永遠為真,無限迴圈順便吐槽這題目,如果敲出像abc選項的 老闆會炒了你的,學校裡淨出這些蛋疼的題目 c不是無限迴圈,0 為字元0,代表的值...
關於C語言的一些問題下面是幾條語句
px py py未被初始化,不能對px賦值strcpy 原型 extern char strcpy char dest,char src 用法 include 功能 把src所指由null結束的字串複製到dest所指的陣列中。說明 src和dest所指記憶體區域不可以重疊且dest必須有足夠的空間來...