c語言printf後面的 表示什麼意思誰能解釋一下,為啥不輸出前面5個字元?

時間 2021-05-05 16:22:31

1樓:Cyan

printf()利用指向字串第乙個字元的指標(數值為位址的變數)來標識它所要列印的字串,printf的引數一般是陣列名,指標變數或引號中的字串,這些傳遞的都是第乙個字元的位址。

&是位址運算子,當&的後面跟乙個變數名時,&給出這個變數的位址,例如&name表示變數name的位址。題主的問題中,name是乙個字串陣列,用這種形式可能更直觀一些

char

name

=;而陣列名也是該陣列首元素的位址,及name == &name[0]。&name[5],printf()獲取name字串陣列第六個元素的位址,然後從這個位址開始輸出字串(位址所對應的值),直到『』\0『』。

初學C語言,只需要明白這些表面淺顯的東西即可,不必深究,更深層次東西,當你學習了資料結構,自會豁然開朗。

2樓:Favoryoung

name其實是'J'的位址,printf時輸出由此開始的字串。

name[5]表示字元'S',&name[5]就為'S'的位址,printf時輸出由此開始的字串。

3樓:楊山

你把下標號[5]改成小於9的正整數看下輸出結果,然後你可以把格式控制符改成字元輸出%c。觀察輸出結果。

在題目中&是取位址符,雙目運算中是按位與。另外乙個和這個符號相近的是邏輯與&&。

之所以沒有輸出前面的字串,是因為輸出的起始位置是字串陣列中第六個字元開始。由字串陣列下標控制的,你用前面的方法實驗體會下就能明白。

C語言的printf列印中文是如何實現的?

zr scat 列印輸出來的是碼,解釋這個碼是終端的事情,所以自動解碼雙位元組碼還是unicode,然後選擇點陣字型檔還是向量字型檔,然後預設某個字型輸出,都是終端的事情,和printf沒有關係啊。 瘋狂的小牛 半夜醒來看到這個問題,激動啊,終於碰到乙個我能答的技術性問題了。因為自己親身寫過類似pr...

c語言這個問題for語句是表示判斷嗎,如果y大於1,則為真,不看a ?

DLM fakeS 因為 for 迴圈的第三個部分 在你的問題中就是 a 這個部分 是每次迴圈體執行一次以後,要執行 a 這個部分 一次 然後再判斷迴圈條件是否滿足,相當於進入到下一次迴圈的週期中 除非迴圈在中途被 break 中斷 則這個部分不會被執行 所以相當於 a 被自增了 2 次。b 被 了...

C 語言有fgets 和readline ,為什麼沒有叫deleline 的檔案內容刪除函式?

醉臥沙場 首先,這是乙個 想當然 的問題,一般是只學過某些程式語言語法但是對計算機作業系統基礎知識沒有充分學習的人會提出來的。C語言本身能提供什麼樣的檔案I O函式,受到特定作業系統能提供什麼樣的系統呼叫的影響。檔案的 行 這個概念是在更高的應用層封裝的面向文字流的函式或操作裡提出來的,比如sed,...