const int *ptr与const char* string

来源:百度知道 编辑:UC知道 时间:2024/06/14 11:35:09
上面两个中的const int *ptr表示ptr所指向的地址可更改,但*ptr不可更改
那么const char* string的意思也是一样的吗?

int *ptr与char* string的写法一样吗即*号一个与ptr靠近,一个与char接近?

int i = 5;
int *const p=&i;
*p=2;程序将报错
因此const 在*左边,表示:所指向的数据不能修改,但是指针可以修改。

然后就是你写的*靠近变量类型,跟靠近变量名称意思都是一样的,
但是最好靠近变量名称,以免引起误解,
比如 int* pVal1, pVal2;容易误解为两个都是指针,pVal1是一个指针,但是pVal2却是一个int变量。
定义两个指针应该int* pVal1, *pVal2; 或者int *pVal1, *pVal2;
显然后面一种写法可读性更好些。

首先两者意思一样;
至于*靠近那边都一样,意思不会有差别都表示定义了一个指针

主要是看const在*号的左边还是右边 如果在const在*号左边则为指常指针可以改变指针指向但无法改变数据 如果在右边则相反

这个 没区别的,都是定义指针的 只不过加了const强制定义不可更改罢了