关于c语言指针的问题。

[复制链接]
查看11 | 回复5 | 2010-12-5 00:51:20 | 显示全部楼层 |阅读模式
const int *p;
p是指向常量的指针变量,还是指针变量是常量?

回复

使用道具 举报

千问 | 2010-12-5 00:51:20 | 显示全部楼层
const int *p这种写法,p是指向const对象的指针。int * const p这种写法,指针为const,而不是它指向的对象为const。 指向const对象的指针(自以为指向const的指针——语出《C++ Primer》) 怎么写?const double *cptr; const限定了cptr指向的对象的类型,而并非cptr本身。也就是说,cptr本身并不是const,允许给cptr重新赋值。不能通过cptr的解引用来修改其指向的对象(可以非const)的值。 (1)如果指针指向const对象,则不允许用指针来改变其所指的const值。 (2)把一个const对象的地址赋给一个普通的、非const对象的指针
回复

使用道具 举报

千问 | 2010-12-5 00:51:20 | 显示全部楼层
指向常量的指针变量
回复

使用道具 举报

千问 | 2010-12-5 00:51:20 | 显示全部楼层
指向常量的指针
回复

使用道具 举报

千问 | 2010-12-5 00:51:20 | 显示全部楼层
简单点说,要看p是什么,从右像左看,首先看到*,所以p是一个指针,那么p是个什么样的指针呢?再往左看,看到int,所以p是一个指向整形的指针。再往左,看到const,表示这个p所指向的这个整形是只读的,所以,最后得到的是:p是一个指针,它指向的一个只读的整形常量。这意味着p的指向是可以修改的,但是对于它所指向的那个内存里面的值是不能修改的。如果是这样:c
回复

使用道具 举报

千问 | 2010-12-5 00:51:20 | 显示全部楼层
指向“常量”的指针变量,不用通过这个指针改变所指的变量的值,可以通过其他方法
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行