形式一:
#define N 10
int a[N];
int n = 10;
int b[n];//编译报错形式二:
int n = 10; int *c = new int[n]();//编译成功通过
十二、C++string类型和c风格字符串代码的相互兼容
1:c风格字符串转换成string类型对象
int a[1];
int * b = new int[0]();
string str("asd");//直接构造一个string新对象
string ss = (string)("asd");//使用强制类型转换成string对象
cout<<ss<<endl;//输出asd
const char * s = str.c_str();
while (*s)
{
cout<<*s<<flush;
s++;
}//输出asd十三、用typedef简化多位数组的指针
在C++中当要定义指向数组的指针时,一个很灵活的方法就是用typedef类型定义,这将会
使该指向数组的指针更加的易读、易写和方便理解。
For Examp:
typedef int int_array[4];//声明int_array是一个有4个int类型元素的数组类型
int_array a;//a是一个有4个int类型元素的数组类型,即a为int * 类型对象
//测试a
a[0] = 1;
a[1] = 2;
a[2] = 3;
a[3] = 4;
int * p1 = a ;
//int * * p2 = a;//错误原因:“不能将int* 类型赋值给int**类型”
for(int i = 0;i<4;i++)
{
cout<<a[i]<<flush;
}//输出1234
//用typedef简化多位数组的指针
int_array * p;//声明p是一个指向数组的指针,而且该数组必须是一个含有4个int类型元素的数组
int array[2][4]= {{1,2,3,4},{5,6,7,8}};
p = array;
for(int i = 0;i<2;i++)
{
for(int j = 0;j<4;j++)
{
cout<<p[i][j]<<flush;
}
}//输出123456789
原文:http://blog.csdn.net/yyc1023/article/details/20001089