char 数组的初始化问题
原创
©著作权归作者所有:来自51CTO博客作者mb6304a73bed12a的原创作品,请联系作者获取转载授权,否则将追究法律责任
char 数组的初始化问题
#include <iostream>
#include <string.h>
using namespace std;
int main() {
// 一维数组
char str1[] = "ab"; cout << str1 << endl; // ab
char str2[] = {"ab"}; cout << str2 << endl; // ab
char str3[3] = "ab"; cout << str3 << endl; // ab
char str4[3] = {"ab"}; cout << str4 << endl; // ab
char str5[3] = {'a', 'b', 'c'}; cout << str5 << endl; // abc
// 二维数组
char str6[2][3] = {"ab", "cd"}; cout << *str6 << endl; // ab
char str7[][3] = {"ab", "cd"}; cout << *str7 << endl; // ab
cout << *str6+1 << endl; // b
cout << *str6+2 << endl; //
cout << *str6+3 << endl; // cd
cout << *str6+4 << endl; // d
cout << *str6+5 << endl; //
return 0;
}
str6是一个2维(行)数组。在每一行中,可以存放一个一个字符串,加上’\0’长度不能超过3,也可以是一个字符数组。因此,下面的初始化,也是正确的:
char str8[2][3] = {“ab”, {‘c’, ‘d’}};
运行结果如下: