C语言 求证两语句的区别

[复制链接]
查看11 | 回复2 | 2012-8-18 21:06:29 | 显示全部楼层 |阅读模式
指针类型的"*"有两种理解:(1)声明的时候理解为该数据是指针类型的,比如*p就是定义一个整形指针p,直接声明加定义的话比如*p=&k,意思就是把k的地址写进p的内容里,即P指向k的地址空间;(2)运算中使用的时候理解为取指针指向的地址空间,这样就是对指向内容的直接操作了。比如说:*p=&k,就是把k的地址写进了p所指向的地址空间内容里。即p指向的地址空间的内容是k的地址。这样一来,如果要表示输出k的地址的话,对于(1)来说,要输出p;对于(2)来说,要输出*p。当然,只定义*p而不初始化时有风险的。...
回复

使用道具 举报

千问 | 2012-8-18 21:06:29 | 显示全部楼层
第二个有问题。改为:int k,*p;p=&k; scanf(“%d”,p);后,与第一个等价。...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行