社区
C语言
帖子详情
指针是变量还是地址?
bdbox@qq.com
2008-08-05 02:47:59
请问各位,我看谭浩强的书上说,指针是地址,存放地址的变量称为指针变量。但看了其它书又说,指针是变量?指针是变量,还是地址呢?晕了~
...全文
984
66
打赏
收藏
指针是变量还是地址?
请问各位,我看谭浩强的书上说,指针是地址,存放地址的变量称为指针变量。但看了其它书又说,指针是变量?指针是变量,还是地址呢?晕了~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
66 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bzh1113
2011-03-01
打赏
举报
回复
[Quote=引用 44 楼 turntogo 的回复:]
呵呵,谭浩强的书上说的没错,指针就是地址,存放指针的变量,才叫指针变量。
只是现在的人说指针的时候,一般是指的指针变量。
[/Quote]
说的对的
bdbox@qq.com
2008-08-06
打赏
举报
回复
1、对于概念:(谭浩强书上提到)
一个变量的地址称为该变量的“指针”。如果有一个变量专门来存放另一个变量的地址(指针)就称为指针变量。
比如: int *p :p表示指针变量,*p表示p指向的变量。
2、对于选项:有了上面概念的支持,我想答案也就很明显了。
解释如下:
A,正确:如果你定义了一个整形指针,int *p,你不能一会指向float型变量,一会指向char变量。
B,正确:参见概念。
D,正确:既然说指针变量是地址,所以地址的值不可能是浮点数。
C,错误(也即为答案):这句话看起来就别扭。理论上,指针变量里面可以存放任意整形值(尽管有些值不可到达……)。变量的地址也可以存放在任意的指针变量之中。(但是区分于指向)
不知道阐述清除了没有。
bdbox@qq.com
2008-08-06
打赏
举报
回复
另外,这是一道C语言的题。
bdbox@qq.com
2008-08-06
打赏
举报
回复
fengogo 老兄:
试一下这段代码:
int x = 3;
float ff = 0.03;
int *px = &x;
float *pf = &ff;
px = 3;
pf = 3;
//pf = 0.3;
你会发现,pf是可以赋整数值的。但不能赋浮点数值(注释了的部分)。
上google上一so就可见答案了。原文说是:因为指针是地址,所以可以赋整数值不能赋浮点数值。(难道是说地址只能是整数的?)
hexiaofeng2006
2008-08-06
打赏
举报
回复
例如int* p
其中p是一个变量,它在程序中也会被分配内存。通常在该内存会存储一个地址。
*p就是指向那个存储的地址地方。
建议看一下操作系统方面的书。
那样你会对堆和栈很好的了解
bdbox@qq.com
2008-08-06
打赏
举报
回复
大家看看以下的这个贴,以前我没发现。
http://topic.csdn.net/t/20060727/08/4907779.html
看来提这个问题的不只是我一个人。
pigDeity
2008-08-06
打赏
举报
回复
[Quote=引用 59 楼 bdbox 的回复:]
fengogo 老兄:
试一下这段代码:
int x = 3;
float ff = 0.03;
int *px = &x;
float *pf = &ff;
px = 3;
pf = 3;
//pf = 0.3;
你会发现,pf是可以赋整数值的。但不能赋浮点数值(注释了的部分)。
上google上一so就可见答案了。原文说是:因为指针是地址,所以可以赋整数值不能赋浮点数值。(难道是说地址只能是整数的?)
[/Quote]
你见过浮点数的地址吗
realdragon2
2008-08-06
打赏
举报
回复
LZ,这个帖子可以结束了.
fengogo
2008-08-06
打赏
举报
回复
也许用的编译器不同.C++编译器一般都需要进行强制转换才能够赋值.
float *p = (float*)(int)0.3f; // 整数可以转换成地址..
沙漠里的海豚
2008-08-06
打赏
举报
回复
一个指针就是一个指针变量啊
星光伴月
2008-08-05
打赏
举报
回复
C: 呵呵,那可是经过强制转换之后的类型(int*)呀,所以才可以的,所以C应该是正确的。
fengogo
2008-08-05
打赏
举报
回复
[Quote=引用 50 楼 bdbox 的回复:]
我想最好还是把指针=地址,指针变量用于存储指针,指针变量的类型是指针类型,这样区分是比较好的吧。
[/Quote]
随你怎么用.自己能明白就好.
A.一个指针变量只能指向同一类型的变量。
B.一个变量的地址称为该变量的指针。
C.只有同一类型变量的地址才能存放在指向该类型变量的指针变量之中。
D.指针变量可以赋任意整数,但不能赋浮点数。
A: 一般若把不同类型的变量地址赋值给pointer,那么会导致编译错误.但是在C++中,子类对象的地址可以赋给指向父类的指针.
B: 各人爱好
C: 比较难理解这句话.指针变量可以存放任意地址, 你甚至可以这样做: int *p =(int*)0x00000001; 把一个32位整数强制转为地址.
D: 正如C,类型不同怎能随意赋值. 整数也不能随便赋给指针啊.
我觉的数据类型的作用在编译后就是确定一次操作在内存中读取多少字节数据.
iBug168
2008-08-05
打赏
举报
回复
[Quote=引用楼主 bdbox 的帖子:]
请问各位,我看谭浩强的书上说,指针是地址,存放地址的变量称为指针变量。
但看了其它书又说,指针是变量?指针是变量,还是地址呢
?晕了~
[/Quote]
这种叫法应该是把
指针变量
简称为了
指针
.
所以应该不矛盾.
panthenia
2008-08-05
打赏
举报
回复
当然是变量,不过存储的是地址就是了。
bdbox@qq.com
2008-08-05
打赏
举报
回复
yaazz 是什么意思?没看太懂
yaazz
2008-08-05
打赏
举报
回复
学生真幸福
bdbox@qq.com
2008-08-05
打赏
举报
回复
我想最好还是把指针=地址,指针变量用于存储指针,指针变量的类型是指针类型,这样区分是比较好的吧。
星光伴月
2008-08-05
打赏
举报
回复
我的答案是D。
bdbox@qq.com
2008-08-05
打赏
举报
回复
fengogo 真有意思,以下是一关于指针的题:
c语言指针概念问题(选择题).
不正确的指针概念是___
A.一个指针变量只能指向同一类型的变量。
B.一个变量的地址称为该变量的指针。
C.只有同一类型变量的地址才能存放在指向该类型变量的指针变量之中。
D.指针变量可以赋任意整数,但不能赋浮点数。
fengogo
2008-08-05
打赏
举报
回复
我觉的把指针 = 地址 反而容易搞混啊. 变量:variable , 指针: Pointer ,地址:address 都分开不是挺好吗?
加载更多回复(46)
如何使用
指针
变量
?如何获取
变量
的
地址
和值?
在调用printAddress函数时,将
变量
x的
地址
作为参数传递进去,函数内部定义一个指向int类型的
指针
变量
,并将参数传递进来的
地址
赋值给它,然后输出这个
指针
变量
的值。所以,想要使用
指针
变量
,我们需要知道
变量
的
地址
...
变量
的
指针
和指向
变量
的
指针
变量
如果有一个
变量
专门用来存放另一
变量
的
地址
(即
指针
),则它称为“
指针
变量
” 定义一个
指针
变量
定义
指针
变量
的一般形式为 基类型 *
指针
变量
名; 说明 可以用赋值语句使一个
指针
变量
得到另一个
变量
的
地址
,从而使它...
C语言中“
指针
”和“
指针
变量
”的区别是什么
C语言中“
指针
”和“
指针
变量
”的区别是什么? 1、概念不同“
指针
”是概念...而
指针
变量
是用来存放另一个
变量
的
地址
的(即
指针
)。 扩展资料:
指针
和
指针
变量
的关系 1、
指针
就是
地址
,
地址
就是
指针
。 2、
地址
就是内...
指针
和
指针
变量
指针
变量
pnum的值就是
变量
num的
地址
,
指针
与
指针
变量
的区别,就是
变量
值与
变量
的区别。所以在定义
指针
变量
的时候,如果暂时没有明确的指向,对其一般初始化为NULL(空
指针
)对没有指向的
指针
变量
进行操作,是很危险...
C语言,
指针
和
变量
的
地址
是一个意思吗?
可以知道
指针
p不过也是一个需要开辟内存空间的
变量
,只不过里面存放的是另一个
变量
的
地址
。 既然是这样,那么能不能通过另一种方式来检验
指针
其实并不特殊呢?把上面代码 p 的定义修改一下,如下: int main() { ...
C语言
69,369
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章