int x=35;
char str[10];
//問:strlen(str)和sizeof(str)的值分別是多少?
// strlen(str) 值不確定,strlen根據(jù)’\0’確定字符串是否結(jié)束。
// sizeof(str)=10 sizeof一個(gè)數(shù)組為數(shù)組長(zhǎng)度
strcpy(str,"www.it315.org"/*共13個(gè)字母*/);
//問:此時(shí)x和strlen(str)的值分別是多少?
// x 為35
// strcpy(char* dest, const char* src)
// 根據(jù)src來復(fù)制dest,依照src的’\0’決定復(fù)制的長(zhǎng)度,而dest必須要提供足夠的長(zhǎng)度,這里會(huì)引起溢出,strlen返回13,但是數(shù)組外部的數(shù)據(jù)已經(jīng)被破壞
str="it315.org";//編譯能通過嗎?
// 數(shù)組不能賦值,只能初始化。char str[10] = "it315.org";
// 而且初始化時(shí)編譯器會(huì)檢查數(shù)組的長(zhǎng)度與初始化串的長(zhǎng)度是否匹配
char *pstr;
strcpy(pstr,"http://www.it315.org);
//上句編譯能通過嗎?運(yùn)行時(shí)有問題嗎?
// 可以通過編譯,但是pstr指向了常量區(qū),運(yùn)行時(shí)只做讀操作,寫操作不保險(xiǎn)
char str[10];
//問:strlen(str)和sizeof(str)的值分別是多少?
// strlen(str) 值不確定,strlen根據(jù)’\0’確定字符串是否結(jié)束。
// sizeof(str)=10 sizeof一個(gè)數(shù)組為數(shù)組長(zhǎng)度
strcpy(str,"www.it315.org"/*共13個(gè)字母*/);
//問:此時(shí)x和strlen(str)的值分別是多少?
// x 為35
// strcpy(char* dest, const char* src)
// 根據(jù)src來復(fù)制dest,依照src的’\0’決定復(fù)制的長(zhǎng)度,而dest必須要提供足夠的長(zhǎng)度,這里會(huì)引起溢出,strlen返回13,但是數(shù)組外部的數(shù)據(jù)已經(jīng)被破壞
str="it315.org";//編譯能通過嗎?
// 數(shù)組不能賦值,只能初始化。char str[10] = "it315.org";
// 而且初始化時(shí)編譯器會(huì)檢查數(shù)組的長(zhǎng)度與初始化串的長(zhǎng)度是否匹配
char *pstr;
strcpy(pstr,"http://www.it315.org);
//上句編譯能通過嗎?運(yùn)行時(shí)有問題嗎?
// 可以通過編譯,但是pstr指向了常量區(qū),運(yùn)行時(shí)只做讀操作,寫操作不保險(xiǎn)
