首先看2個東東
char
*str2
=...
; 這2個哥們兒長的很像,可實際的涵義確差老了。2個都是c裡面的東東。
str1叫字元陣列,首先它是乙個陣列,5個元素但長度為4 (加上個/0)其實就相當於「abcd」。看看怎麼變過來的:
首先變為char str1[ ] = {"abcd");然後把括號去掉就是 char str1[ ] = "abcd",和c++裡面初始string物件一樣
在c++裡面你可以這麼用 string s(str1)或string s = str1 就相當於string s("abcd")對s進行初始化,反正就是一句話,可以把乙個字串陣列看成乙個字串常量。另一種高階的玩法的是
string s(str1,hello + strlen(str1)) 要知道在c++裡面陣列的指標也就是str可以看成指向其本身的的迭代器。
str2 有點麻煩,兩兄弟最不像的地方就是引號,乙個單乙個雙。這就是關鍵了!!單表示字元,雙表示字串,字串是什麼,剛才已經說過了,它是陣列。這下就哦了,不就是陣列的陣列麼,說白了就是個2維陣列,在白點就是乙個指標的指標,所以可以用char** p指向它,
關於字元陣列和字串
關於字元陣列和字串 引用 火未燃說 char a 5 和char a 10 有效字元5個,0 表示結束,china共5個字元,但在記憶體佔6個位元組,a 10 佔足五個後遇到 0 結束 結束符 系統會自帶的,不用畫蛇添腳 加上也無所謂 by eviloctal 首先說火未燃關於空字元系統自己加的說法...
字串和字串陣列
字串陣列 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...
字串和字元陣列
void test1 函式test1中,指標str1所指向的字串有11個元素。一定要注意字串是以 0 為結尾的,而strcpy拷貝了整個字串包括 0 所以存在下標越界的問題。void test2 函式test2中,字元陣列str1包含10個元素。陣列str1並不是以 0 結束,所以不能作為字串使用。...