当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++进阶与实例

字符数组和字符串数组的区分

    首先看2个表达式  
char str1[] = ...{’a’,’b’,’c’,’d’}; 
char *str2[] = ...{\"a\",\"b\",\"c\",\"d\"}; 
    这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指向它,
相关内容
赞助商链接