请问关于char数组初始化的问题
char test1[10]="";
char test2[10]={};
char test3[10]={0};
三种有何区别呢?
[解决办法]
char test1[10]="";
char test3[10]={0};
以上两种是一样的,都是初始化为空串。
char test2[10]={};
以上数组未被初始化。
[解决办法]
看下面的测试代码:
#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;}