1.字元陣列未初始化裡面元素值為多少
(1)字元陣列定義在main函式外面,s[i]的值為』\0』即為null(i=0,1,2,3…), (int)s[i]的值為0。
(2)字元陣列定義在main函式裡面,輸出結果表現為亂碼,(int)s[i]的值為隨機數。
2.字元陣列在部分初始化後,後面的元素自動賦值為』\0』
#include
using
namespace std;
int main ();
//char s[10]=;//三種初始化方式都一樣
for(
int i=
0; i<
10; i++
)return0;
}//輸出結果為:abcde00000
注意:
#include
using
namespace std;
intmain()
cout << endl;
for(
int i=
0; i<
10; i++
)return0;
}/*輸出結果:
第一行為亂碼
第二行前五個數為 abcde 的 ascii碼,其餘數為隨機數
3.字元陣列初始的值全部置為』\0』的辦法(即以%c讀取為null即空,以%d讀取為0)(1)記憶體操作庫函式memset
標頭檔案cstring中宣告:
void * memset(void * dest,int ch,int n);
將從dest開始的n個位元組,都設定成ch。返回值是dest。ch只有最低的位元組起作用。
例:將szname的前10個字元,都設定成』a』:
char szname[200] = 「」;
memset( szname,『a』,10);
cout << szname << endl;
=>aaaaaaaaaa
#include
#include
using
namespace std;
intmain()
return0;
}//輸出為 0000000000
(2)char s[10]=,從一開始就全部賦值為0
#include
using
namespace std;
intmain()
;for
(int i=
0; i<10;
++i)
return0;
}//輸出為 0000000000
這樣只要對字元陣列進行連續賦值,便很容易通過下列**遍歷輸出整個字元陣列,而不用管字元陣列的長度為多少:
#include
using
namespace std;
intmain()
return0;
}//輸出 cayde 6
參考:
感謝**!
字元陣列初始化
上週實習做fcitx輸入法時碰到乙個字元陣列的問題,因基礎的不紮實,導致經除錯了幾分鐘才發現問題所在。字元陣列初始化常見有兩種格式 char arr test 10 和char arr test 11 helloworld 為什麼是一樣的內容,兩個陣列的長度不一樣,乙個是10,乙個是11,因為預設在...
未初始化指標
今天碰到個未初始化指標的問題。大意如下 class a public b m pb class b blah,blah,blah void func a pa b pb new b 初始化pb.pa m pb pb std vector a aptrs apters.push back pa fun...
陣列 初始化 只含動態初始化 靜態初始化
首先j a中此處只講靜態初始化 動態初始化 靜態初始化就是提前在陣列中設定好了陣列內容,此內容不做改動,該多長已經在設定內容的時候已經決定 動態初始化就是僅限於new及確定陣列大小長度,裡面的陣列內容沒有,可自由進行填寫,也包含了靜態初始化的內容 示例 package 陣列 public class...