1.初始化
char* pstr = "hello world";
char parr[] = "haha,xiexie";
"hello world"是字符串常量,存儲在內存的常量區,不能被修改。
pstr是指向字符串常量的指針,其指向內容不可以被修改,因此不能當作參數傳遞。
初始化需要修改的字符串,應該使用
char parr[] = "haha,xiexie";
parr也可以看作指針,“haha,xiexie”存儲在臨時堆棧上,超出作用域會自動銷燬,內容可以被修改。
parr是一個數組名,數組名是一個不可修改的常量,因此聲明的時候必須初始化,初始化方式包括兩種:
char s[] ={"beijing"};
char s[] = "beijing"
char s[] = {'b','e','i','j','i','n','g','\0'}
char* 和string相同,初始化只有一種方式:
char* ps="beijing";
2. char a[] = "hello";和char b[] = {‘h’,‘l’,‘l’,‘o’};二者是不一樣的。
字符串長度:應該是
strlen
(),對a求長度爲5,但是對b求長度是一個未知的大小,應該
strlen
()知道遇到
'\0'
才停止,所以a,b之間的長度不能比較
佔用內存大小:sizeof
是大小,
sizeof
(a)=6,
sizeof
(b)=5,
另外,char c[]={"hello"},sizeof(c)=0;strlen=5