您的位置:首页 > 编程语言 > C语言/C++

关于字符数组和字符串数组

2007-10-04 21:59 218 查看
首先看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指向它,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  string c++ c