有關c語言的問題,誰告訴我,有關C語言的問題,誰告訴我

時間 2022-05-01 17:34:36

1樓:匿名使用者

首先,printf("%s",*++p);

這句是錯誤的,輸出格式為%s,代表字串,但後面的引數*++p是個字元格式,不能正常執行。

若改成printf("%c",*++p);

則輸出結果為o

若改成printf("%s",++p);

則輸出結果如下圖:

2樓:

char a="how are you",*p=a; printf("%s",*++p);

這個輸出的語法寫得有錯誤啊 你是啥編譯器啊

3樓:藍豆

第二個是第一了乙個指標變數p,並把a的首位址給了p,*++p其中*和++的優先順序是一樣的,而結合方向是自右至左,所以先執行++p操作,p 所指的位址先加一,也就指向了o,再取*操作,輸出就是o了,繼續加下去,因為how後面是空格,所以到此編輯器認為結束了,所以輸出是ow。第乙個就是直接輸出字串了。

4樓:

第乙個應該輸出i。

第二個*p=a 是把a[0]的位址賦給p 而後*++p 則位址+1 從o開始輸出到w。

%s輸出遇到空格都會停止。

編譯器不同輸出結果有一定的差異。

5樓:機孤丹

第乙個是正確的;

第二個中不能正確輸出,有兩個問題:一是格式化輸出中%s對應的是字串的位址,而*++p是a字串的第二個元素,用gcc編譯出錯;第二個是++p執行時,會首先對p加一,然後進行格式化輸出,這樣的話就算修改了第乙個問題,那麼輸出的應該是ow are you

6樓:保持這種憂鬱先生

樓主第二個不要用*++p,直接用 ++p可以看到ow are you字元

7樓:小七說

char a="how are you",*p=a;

printf("%s",++p);

使用vs2008輸出的是ow are you

有關c語言的問題,有關C語言的問題

奈帥斂昕葳 賦值時用 如i 25 邏輯運算時用 如決斷i 是否等於j i j 這時一般都要用到if語句 如if i j 碧茹武靜楓 是賦值。就把乙個數賦值給乙個左運算元。是數學上的等於。用於判斷,如int a 10,b 11 判斷a是否等於b就用 if a b 蒼吉柔星鵬 賦值運算子,比如,a 3,...

請教c語言有關輸入的問題,請教C語言有關輸入的問題

雖說小數點後還有3位,但saanf語句沒有精度限制,所以選b。具體 於的注意問題 還有關於scanf的可以參考一下,可以更全面地了解一下 雖然沒有見過這種輸入。不過我想答案應該選b。再輸入函式時其實對於float型別的數,它本身的小數點位數都是明確規定的,大概是6位吧。所以應該是乙個整數,答案bsc...

有關c語言,單雙精度的問題,有關C語言,單雙精度的問題

有效數字,精確度,儲蓄空間都不同 例如 float a a 111111.111 由於float型變數只能接收7位有效數字,因此最後兩位小數不起作用,也就是說儲存的時候最後兩位的數會改變。如果a改為double型,則能全部接收上述9位數字並儲存在變數a中.占用儲蓄空間不同,精確度不同。c語言程式設計...

求教c語言中的函式指標問題,C語言有關函式指標的乙個題目,看不懂,求解答

施瓦辛格 pite ret pite taskfunction pite message msg unsigned char pite taskfunction pite message msg 上邊是函式指標宣告的一種 type pointer parameter list pointer 為函式...

有關時間相加的問題c語言急求,有關時間相加的問題 C語言 急求!!!

劇佛 思路 1.將兩個數分為前兩位和後兩位。2.後兩位先相加,如果超過60,則減去60,並進一位。3.前兩位相加還要加上進製,如果超過24,則減去24.4.將前兩位和後兩位組合,形成最終要輸出的形式 完整的程式 如下,不懂之處可以看註解 include void main int a,b,c,d,e...