int const *p是表示p指向的内容不能改变,即*p不能改变,p可以改变,在想问的是,如果

作者&投稿:阳贵 (若有异议请与网页底部的电邮联系)
C语言中,const int *p是指p为只读变量还是说p指向的不能通过p修改,还是说都是只读?~

可以这么理解 int *p,p指向的是int *p得到int
const int* p;p指向的是const int, *p得到const int,所以*p不能修改,但p可以修改

是指 在P指向的地址所放的值是不允许改变的

*p不能改变,是说,p指向地址存的值不能变。

而p改变了,只是p指向了另一个地址,虽然*p的值变了,但原本地址中指向的值并没有变。
这种定义,主要是为了让程序不去改内存中的值。

比如字符串处理中
void func(const char *p)
对于主调函数来说,只要不改变我传过去地址指向的值就可以了,至于p的值在函数里面爱怎么变,主调函数并不关心。主调函数保护的只是传过去地址上的数据。


阿合奇县15027849087: 如何定义一个指针常量?int const *p或const int *p或int *const p -
包嵇协达: const int *p 和 int const *p; 这两个是一样的. 表示p指向空间不能改变.即*p不能改变.int * const p; 这个表示p本身值不能改变, 但是*p可以改变.const int *const p; 和 int const *const p; 这两个相同,表示p指向区域 以及p本身 都不能改变根据实际需要 定义对应形式.

阿合奇县15027849087: 谁能给我讲下const int *p和int const *p 和const int const*p
包嵇协达: const int *p和int const *p 没有区别.const int *p是指向const对象的指针,p指向的对象不能改(也就是*p的值不能改),但是p本身(地址)可以改.const int const*p是p本身不能改,它所指向的对象也不能改

阿合奇县15027849087: const int *p int const *p 这两个的区别,c语言编程 -
包嵇协达: const int *p 就是说int *p这个是常量,*p不可以改变 int const *p 就是说*p这个是常量,p不可以改变 int *const p就是说p是常量,p本身是常量指针 依次类推 const后面是常量

阿合奇县15027849087: 有什么区别?constint*p?constint*p;和int
包嵇协达: const int *p, p指针指向一个constant int. int * const p, constant pointer p指向一个int.

阿合奇县15027849087: 当const修饰函数的返回值时问题 -
包嵇协达: 应该没区别.有区别的情况是定义指针的时候:const int *p 和 int const *p 都表示p指向的数据不能变,p是可以修改的;而int *const p则表示p的值不能修改.

阿合奇县15027849087: C++中引用的问题,请问如何理解 const int *p=&i ?? -
包嵇协达: const int *p=&i表示p指向的值i不可以更改,但是指针p可以更改,另外右边不是引用,是取地址符号呀,也就是说p是指针,引用的话是int &ra = a;引用和指针很容易搞混~

阿合奇县15027849087: const int i=0; const int *p2=&i; int *const p1=&i;//为何会报错 int const *p表示p是什 -
包嵇协达: const int *p2=&i; //const修饰的是*p2, 也就是p2指向的对象是个const, p2本身不是const int *const p1=&i; // const修饰的是p1,指针本身是个const, 它指向的对象不是const, 而i 是个const,所以它不能指向i const修饰指针的时候以"*"为分割...

阿合奇县15027849087: const int * p p = 5 int * const p *p = 5 的区别 -
包嵇协达: const int * p定义的是(const int)型的指针,指向的是int型的常量,指向的值不能改.int * const p定义的是 const的指针,它的指向不能改. 你试试这个程序报错的都是那几行就知道了.void main() { int a = 5,b = 6; const int * p1 = &a; int * const p2 = &a; (*p1)++;//错,p1指向的是常量,值不能变 (*p2)++; p1 = &b; p2 = &b;//错,p2是常量指针,其指向不能变 }

阿合奇县15027849087: int const *p 和int *const p 一样吗 -
包嵇协达: 不一样.前者表明指向的对象是const型,不可以修改,但是指针p的指向可以修改;后者表明指针变量p是const型,它的指向不可修改,但是指向的对象可以修改.

阿合奇县15027849087: const int *p与 int const* p有什么不同
包嵇协达: 是 const int *p和int * const p吧 前一个指的是p指针所指的变量是一个定值,你不可以通过p来改变它的值 后一个指的是p是一个定值,你不可改变p的值,但是可以改变p所指向的值

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网