回覆列表
  • 1 # 周林ZhouLin

    "\0"是轉譯字元,意思是告訴程式,這不是字元0,是2進位制0直接放進來;在C語言中沒有專門的字串變數,通常用一個字元陣列來存放一個字串。字串總是以"\0"作為串的結束符;當把一個字串存入一個數組時,也把結束符 "\0"存入陣列,並以此作為該字串是否結束的標誌。有了"\0"標誌後,就不必再用字元陣列的長度來判斷字串的長度了。

  • 2 # 科技幽默生活

    \0是字串的結束標誌。C語言陣列,字串這些在記憶體中是順序儲存的,就是一個接一個的按順序儲存。

    那麼用指標列印或者做其他處理的時候,如果不知道字串的長度就讀記憶體,就可能超出記憶體範圍。讀到亂碼,或者段錯誤。

  • 3 # 瓶凡科技營

    一、C語言跳脫字元

    在C語言語法規範中有一些字元是無法直接顯示出來的,比如有一些ASCII碼,語言藉助跳脫字元,才能讓編譯器知道,程式中所要表達的是哪個符號。而"\0"就是代表的“空”字元,遇到這個,編譯器就認為是空的,無輸出。

    二、關於C陣列

    C語言中陣列作為一種變數型別,其儲存是線性的,順序的。比如題主所說的s[ ]這個陣列,記憶體中存放序列就是s[0]、s[1]…s[j]、s[j+1]…s[N-1],而這個N就是陣列定義時的長度,也就是元素的個數。

    三、C語言字串操作

    很多時候,我們C語言中要處理字串操作,因為C是一個相對接近硬體的語言,不像其他語言比如JAVA、C#或者Python那樣,一個String型別就定義了一個字串。而經常依靠一個數組,比如常見的:

    char *String[ ] = “hello world”;這樣的定義。

    或者題主所說的s[ ]應該也是一個char型的陣列。

    好處是C語言提供了一些基礎的操作字串的庫函式,比如:strlen()可以計算長度 strcat()可以追加等。

    我們最常見的printf(“%s”,s);也可以將整個s陣列中存放的字串打印出來。

    重點來了:

    所有的這些字串操作都有一個限制,就是字串的末尾需要有一個結束標識,就是空字元"\0",要不然呼叫的C庫函式無法判決一個字串在哪裡結束,所以s[j]就是將s[ ]陣列j+1個元素賦值為空字元,表示字串到此結束。

  • 中秋節和大豐收的關聯?
  • 想入手一輛15萬左右的車有啥好車推薦的嗎?