在阅读关于指针教程,我面临着像他们这种常量指针和整型常量指针有什么区别?
const int *p;
和
int const *p;
和
int *const p;
请告诉我的主要区别码?
虽然我指定的任何整数值的地址,像
int b=100;
b=&p;
我收到错误。这有什么意义?有人可以用例子来解释吗?
在阅读关于指针教程,我面临着像他们这种常量指针和整型常量指针有什么区别?
const int *p;
和
int const *p;
和
int *const p;
请告诉我的主要区别码?
虽然我指定的任何整数值的地址,像
int b=100;
b=&p;
我收到错误。这有什么意义?有人可以用例子来解释吗?
大多数时候,只需从右向左读取它。
int const *p;
“p
是一个指向const
int
”。
int *const p;
“p
是const
指针到int
”。
唯一的例外是当const
是lefmost关键字:
const int *p;
然后,它的一样:
int const *p;
如果指针const
,那么你就不能修改其地址,但您可以更改其指向的值。如果指向的值是const
(在你的情况下是int
),那么你不能修改指针指向的内容(但你可以指向其他内容)。
到无关的事,这无法编译:
int b=100;
b=&p;
因为你分配指针veriable(一int **
)的地址b
。这是非法转换。你可以用演员强制它,但我不认为这就是你想要的。
假设变量命名是一致的,'B =&P;',因为我们正在分配指针的地址应该失败(即指针)到一个整数,不是? –
@undur的确。男人,我一定很累,没有看到! –
尝试任何这些:http://stackoverflow.com/search?q=const+before+after – titaniumdecoy