读书人

请教关于char数组初始化的有关问题

发布时间: 2012-11-03 10:57:43 作者: rapoo

请问关于char数组初始化的问题
char test1[10]="";
char test2[10]={};
char test3[10]={0};

三种有何区别呢?

[解决办法]
char test1[10]="";
char test3[10]={0};
以上两种是一样的,都是初始化为空串。
char test2[10]={};
以上数组未被初始化。
[解决办法]
看下面的测试代码:

C/C++ code
#include <iostream>using namespace std;class A {public:    A() {        cout<<"A::A()"<<endl;    }    A(int val) {        cout<<"A::A(int)"<<endl;    }};int main() {    cout<<"init by string"<<endl;    char a[] = "abc";    cout<<sizeof(a)<<endl;    cout<<a[0]<<a[1]<<a[2]<<endl;    cout<<"init by nothing"<<endl;    A objs[2] = {};    char ss[10] = {};    cout<<strlen(ss)<<','<<(int)ss[1]<<endl;    cout<<"init by int val"<<endl;    A objs2[2] = {0};    char sss[10] = {0};    cout<<strlen(sss)<<','<<(int)ss[1]<<endl;    return 0;} 

读书人网 >C++

热点推荐