C語言中的 0 是什麼?

2021-10-10 00:20:45 字數 1224 閱讀 9404

』\0』是什麼?

『\0』 是轉義字元 ,為了告訴編譯器』\0』是空字元,而不是字元0.

字元』0』對應的二進位制為00110000,而』\0』對應的二進位制為00000000

在c語言中通常用乙個字元陣列來存放字串,』\0』 是字串的結束標誌,任何字串之後都會自動加上』\0』。如果字串末尾少了『\0』轉義字元,則在輸出時可能會出現亂碼問題。

接下來結合**來看

1.不指定字串陣列長度時

正確賦值

char str1=

;char str2=

//字元陣列str在記憶體中的實際存放情況為:a b c '\0'

//後面的'\0'是編譯器自動加上的,所以在給字串陣列賦初值的時候不用指定陣列的長度.

錯誤的賦值

char str=

;printf

("%s\n"

,str)

;//用單引號賦值時,會丟失'\0',所以此時字串陣列無結束標誌,列印時後面會出現亂碼

2.指定字串陣列長度時

由於c語言中以』\0』作為字串陣列的結束標誌,雖然』\0』不計入串長,但是要占用記憶體空間乙個位元組,所以要留出乙個位元組儲存』\0』

char str1[5]

=;char str2[5]

=;

總結:

若希望字串陣列以』\0』結尾,可以寫成下面的情況

//字串賦值,系統自動新增

char str1=

//人工新增

char str2=

;char str3=

;//留乙個空位置給'\0'

char str4[5]

=;char str5[5]

=;

注意:

1.當字串陣列中間出現』\0』時,』\0』後面的字元不再列印,因為』\0』為字串陣列的結束標誌編譯器讀取到』\0』時會認為這個字串陣列已經結束。

char str1=

;char str2=

;//str1與str2列印的內容一樣

2.當拷貝字串陣列str到str1時,結尾處的』\0』也一同拷貝

C語言中的EOF是什麼?

日期 2011年11月12日 我學習c語言的時候,遇到的乙個問題就是eof。它是end of file的縮寫,表示 文字流 stream 的結尾。這裡的 文字流 可以是檔案 file 也可以是標準輸入 stdin 比如,下面這段 就表示,如果不是檔案結尾,就把檔案的內容複製到螢幕上。int c wh...

C語言中的EOF是什麼?

在c語言中,用getchar 讀取檔案檢測到檔案結尾時將返回乙個特殊的值,即eof end of file scanf 函式檢測到檔案結尾時也返回eof eof定義在stdio.件 includeint main void 不用定義eof,因為stdio.h中已經定義過了。不用擔心eof的實際值,因...

C語言中a 0x0表示什麼?

c語言中a 0x0表示什麼?一 說明 1.在c語言中,可以用作取位址和按位與操作兩種運算。不過取位址是針對變數的,當前 後是乙個常量,在c語言中不允許取位址操作,所以這個是語句的一部分,前面還要有乙個操作變數。比如a 0x01。2.是雙目操作符,需要兩個運算元,代表含義為按位與操作。3.分析運算元0...