c語言中字串為什麼要有\0
呢?\0
在字串中的作用是什麼
\0`在字串中標誌著結尾
用來判斷這個字串已經結束
如果不新增』\0』,系統就在記憶體中一直向後讀,直到讀到』\0』為止(這個情況就造成錯誤)
乙個語句結束了,就用分號;表示結束
首先要區分,字元,字元陣列,字串的區別。
字串預設的最後會有』\0』
char k = 『a』; //定義的乙個字元變數,並賦值為』a』字元
char a[10]; //定義乙個size為10的字元陣列,未初始化
char b[10] = ; //定義字元陣列,並用一組字元初始化,此時後面不會自動加上』\0』
char c[10] = ; //定義字元陣列,並用「字串」初始化(雙引號內部的是字串),字串後面會自動加上』\0』
此外:
對於char a[10];
gets(a);
scanf(「%s」, a);這兩種方法為a的元素賦值,預設的最後會有』\0』. 這兩個函式都人為輸入的是字串
for(int i = 0; i < num ; i ++)
scanf(「%c」, &a[i]);//這種方法,是每次讀入乙個字元。這時不會自動在後面加上』\0』
只有字串陣列後才需要跟\0,不是字串陣列不用加\0
字串和字串陣列
字串陣列 include int main int argc,const char ar printf name1 s n name1 name1 zhangsan 部分初始化中,沒有被初始化的元素預設是0,0 對應的ascii值是 0 char name2 9 printf name2 s n n...
字元陣列和字串陣列 0 問題
字元陣列 include include using namespace std int main int argc,char const ar 單字元儲存則不會有 0 cout sizeof x sizeof y strlen x strlen y zl laptop 2abl2n6v mnt d...
字串和字元陣列
void test1 函式test1中,指標str1所指向的字串有11個元素。一定要注意字串是以 0 為結尾的,而strcpy拷貝了整個字串包括 0 所以存在下標越界的問題。void test2 函式test2中,字元陣列str1包含10個元素。陣列str1並不是以 0 結束,所以不能作為字串使用。...