今天程序提交答案總是不對,調試半天才發現本定義的是char s[4]={'1','2','3','4'} ;
程序運行過程中輸出才發現多了一個字符 ?printf("%s\n"); //結果12349
思前想后覺得可能是沒有字符數組結束符 ('\0');
特別注意:
定義使用字符型數組時,應多開出一個空間來存放 '\0' ,如果字符數組中沒有 '\0'則strlen(char *s),str....的函數調用時都會出現問題,因為這些函數都找不到哪里是字符數組的結束符。
例如:
s[4]="1234"; ?同時s數組緊跟其后的二個字節的有數據(假如為 '5' '\0')
在調用函數的時候傳遞的是數組的首地址使用 puts(s); 結果就是 :12345?
????????????????????????????????????????????????????????????????????小弟才疏學淺,如有理解有誤還望提點,謝謝
???????????????????????????????????????????????????????????????????????????????????????????????2014-3-22