【发布时间】:2016-06-13 11:20:58
【问题描述】:
我是 C/C++ 编程的新手,我仍在学习指针数据类型之间的一些差异。但我在这些方面遇到了困难:
int *const x1;
const int *x2;
char *x3[3];
char (*x4)[3];
double* x5, x6;
我认为第一个应该是一个指向常量内存地址的整数变量
而x2 应该是一个 const 的整型指针,对吧?
我不知道这是否正确。那么谁能解释一下它们之间的区别?
【问题讨论】:
-
注意:
int *a是一个指针,int a[2]也是一个指向2个值的指针(数组)。int *a[2]是指向数组的指针。可能对你理解有点帮助 -
@Hearner:
int a[2]不是指针(尽管在某些情况下它可能衰减为指针)。 -
@Hearner
int *a[2]是一个指针数组。 -
“感谢您的建议”这是一个新的
-
@Cheiron 我 认为 Sourav 表示试图将相同的概念应用于两种语言可能会导致不幸 - 通过巧妙地使用后增量如何无序和因此,如果人们真的试图评估将名为
C的变量除以(本身是后增量的)的结果,那么任何事情都可能发生。