o**********a 发帖数: 330 | 1 下面两个例子为啥第一个可以编译而第二个不行
**a和*a[]啥区别
多谢了
int main(){
double **a;
a = new double *[23];
return 0;
}
int main(){
double *a[];
a = new double *[23];
return 0;
} | l********a 发帖数: 1154 | 2 前提:
1. new一定返回一个pointer
2. type *a读作: a是一个(指向type)的指针
3. 优先级[]高于*http://en.cppreference.com/w/cpp/language/operator_precedence
然后:
double **a: a是一个指向(一个指向double的指针)的指针, (a是个指针的'指针')
double *a[]: a是个数组,数组的元素是 指向double的指针 (a是个指针'数组')
你的代码:
第一个,double **a = new ...,左边a是个指针,右边new返回指针,没问题
第二个,double *a[] = new...,左边a是个数组,右边new返回一个指针,有问题. | o**********a 发帖数: 330 | 3 多谢。
那应该怎样初始化第2个呢
【在 l********a 的大作中提到】 : 前提: : 1. new一定返回一个pointer : 2. type *a读作: a是一个(指向type)的指针 : 3. 优先级[]高于*http://en.cppreference.com/w/cpp/language/operator_precedence : 然后: : double **a: a是一个指向(一个指向double的指针)的指针, (a是个指针的'指针') : double *a[]: a是个数组,数组的元素是 指向double的指针 (a是个指针'数组') : 你的代码: : 第一个,double **a = new ...,左边a是个指针,右边new返回指针,没问题 : 第二个,double *a[] = new...,左边a是个数组,右边new返回一个指针,有问题.
| X****r 发帖数: 3557 | 4 double *a[23];
【在 o**********a 的大作中提到】 : 多谢。 : 那应该怎样初始化第2个呢
| H****r 发帖数: 2801 | 5 double *a[23];
【在 o**********a 的大作中提到】 : 多谢。 : 那应该怎样初始化第2个呢
|
|