本文目录一览

1,指针常量与常量指针

这个就是int const *和int * const的区别。int const * pc;是定义一个指向常量的指针,这个常量的值是不能变的,但是pc指针本身仍然是个变量,所以我们可以对其进行赋值即:pc = &z,但不能这样*pc = 3,因为*pc代表的是pc所指向的内容,在这里是个常量,常量是不能被赋值的。而int * const cp;因为const紧跟着cp所以cp被定义成常量,这样指针cp的值就不能被改变了,如果y被定义成变量即:int y = 3;那么* cp的值即常量指针cp的值仍然可变,但cp指针本身是个常量。
指针常量是需要被赋值的,算法是从上往下执行,在执行完int * pp = &z;后,指针的赋值是可以改变原来的赋值的,所以*pc改变成&z的值。
常量指针表示指针的值是一个常量,比如int a = 0; int *const ptr= &a;也就是说指针指向的地址是不变的,但是他的内容可变。指针常量是指指针指向的是一个常量,也就是说指针指向地址的值是不变的。比如const int *ptr =0;

指针常量与常量指针

2,指针常量和常量指针的区别

int a = 10;int * b = a;//指针const int * c = a;//指向常量的指针int * const d = a;//常量指针const int * const * e = a;//常量指向常量的指针你想问什么b是可以修改自己,就是可以重新指向别人,也可以修改a的数据c是不能修改a的数据,不过可以重新指向别人d是不能重新指向别人不过可以修改a的数据e是既不能指向别人也不能修改a的数据
常量指针表示指针的值是一个常量,比如int a = 0; int *const ptr= &a;也就是说指针指向的地址是不变的,但是他的内容可变。指针常量是指指针指向的是一个常量,也就是说指针指向地址的值是不变的。比如const int *ptr =0;
指针常量:指针指向的内容是不允许修改。常量指针:指针指向的内容是允许修改,指针指向的地址是不允许修改.
常量指针就是指针只能指向常量的地址 常量是什么不用说了吧。。。int a=5;5的地址就是常量,a的是变量。p只能指向常量但是p可以改变,即可以指向不同常量。指针常量就是指针本身指向的地址不能变,即int *p=a; 这个p即&a不能变,但是a可以改变

指针常量和常量指针的区别

3,什么是常量指针指针常量

①注意一下: 往往中文属于里形式如AB ,那么A是描述,B是本质。 比如 数据库管理系统 数据库管理是描述 系统是本质 比如 函数指针 函数是描述 本质是指针,这个指针指向函数地址 (那本质和描述的区别是?描述变了还是同一大类,本质变了就不是同一大类了) ②言归正传: 常量指针,也就是本质是指针,什么样的指针呢?常量类型的指针,什么叫常量类型的指针呢? 回忆一下函数指针,指向函数地址的指针。 那么常量指针,就是指向常量类型地址的指针。 比如const int * p; 而指针常量,本质是常量。 什么类型的常量?指针类型的常量,为了能够有个术语结构上的对比,你肯定知道整型常量,也知道是这么定义的:const int a; 但指针常量,是这么定义的 : int * const a; const 在 *前面,是常量指针,const在*后面,是指针常量。 ③这二者的区别就是: const int *p 指向的是 const int a=2;的&a;p可以变化但是*p不可以变化。 而int * const p=&a; 意思是描述的是p,p不可变,就如const int a=2; a的值就不能再改变了。那么p不可以变,但是*p可以变。 还有一种是 综合一起的,const int * const p=&a; 这种一旦确定值,*p和p都不能变化。

什么是常量指针指针常量

4,C中什么是常量指针什么是指向常量的指针两者有什么不同

1 常量指针!如 int b, c; int * const a = &b;表示a是一个常量指针它指向变量b的内存。但是因为是常量指针所以不能再用a指向其他变量,如 a = &c; 错误!可以修改指向内存的值,如:*a = 20; BTW 常量指针声明的时候必须向我那样赋初值。2 指向常量的指针!如 int b, c; int const *a; a = &b; a = &c;都可以,唯独它指向的内存不能被修改。如:*a=20;这是违法的!错误!这就是主要区别!BTW 还有一个记住他们不同形式的技巧!看const关键字,他后面的不可修改,如int * const a = &b; 后面是a,则说明a不能修改!int const * a = &b;后面是*a则说明*a不可被修改!还有什么问题短消息联系我!
看const的位置,是在*左边还是右边不要管什么常量指针指针常量的,用更多的语言能描述清楚的,就不要试图是思考这些用汉语表达极易被混淆的概念简单来说,如果const出现在*左边,比如const char* a;那么a“所指向的位置的值”不可被修改,也就是a指向的内容是常量,如int a = 3;cosnt int* p = &a;int b = 4;p = &b; // no problem*p = 5; // error相反如果const出现在*右边,比如char* const a;那么a是一个“指向位置”不能被修改的指针,也就是说a本身是个常量,比如int a = 3;int* const p = &a;*p = 5; // no problemint b = 4;p = &b; // error

5,c常量指针和指针常量和常量指针常量这些都有啥区别的哈

看const的位置,是在*左边还是右边不要管什么常量指针指针常量的,用更多的语言能描述清楚的,就不要试图是思考这些用汉语表达极易被混淆的概念简单来说,如果const出现在*左边,比如const char* a;那么a“所指向的位置的值”不可被修改,也就是a指向的内容是常量,如int a = 3;cosnt int* p = &a;int b = 4;p = &b; // no problem*p = 5; // error相反如果const出现在*右边,比如char* const a;那么a是一个“指向位置”不能被修改的指针,也就是说a本身是个常量,比如int a = 3;int* const p = &a;*p = 5; // no problemint b = 4;p = &b; // error
这个说的比较清楚 http://www.cnitblog.com/mantou/archive/2005/10/05/3074.html
const是用来修饰类型的,一般从位置来判断它所限制的对象。如: const char * v;//这是常量指针,const与char最近,它限制char是常量,即不可被修改,整体看const char即是不可被修改的char类型,再看* v,v是指针变量,这个指针变量指向的类型是const char。 char * const v;//这是指针常量,const与*最近,它限制指针变量是常量,即指针的值不可被修改(即指针指向的内存地址不可修改),这个内存单元被解释为char类型。
(1)常量指针:常量指针就是指向常量的指针,指针所指向的地址的内容是不可修改的。 指针常量定义"const int * pi=&a;"告诉编译,*pi是常量,不能将*pi作为左值进行操作。 所以这里的指针还是一个变量,它的内容存放的是常量的地址。 (2) 指针常量:指针常量就是是指针的常量,它是不可改变地址的指针,但是可以对它所指向的内容进行修改。 定义" int *const pi=&a;"告诉编译,pi是常量,不能作为左值进行操作,但是允许修改间接访问值,即*pc可以修改。 (3)综合(1)(2)可知常量指针常量,其指针值不可改变(不能变为其他地址),指向的内容不可改变 (详细) http://blog.csdn.net/gaoxiaowei/archive/2008/08/22/2814295.aspx

文章TAG:常量  指针  常量指针  
下一篇