关闭

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

669人阅读 评论(0) 收藏 举报

首先看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指向它,

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:4025次
    • 积分:93
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档