| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1273 人关注过本帖
标题:指针变量为什么不能被其他变量赋值。即(* p = i )为什么* p 不能被别的变 ...
只看楼主 加入收藏
朔源
Rank: 1
等 级:新手上路
帖 子:105
专家分:4
注 册:2015-9-22
结帖率:90%
收藏
已结贴  问题点数:18 回复次数:6 
指针变量为什么不能被其他变量赋值。即(* p = i )为什么* p 不能被别的变量赋值呢?
int main(void)
{
   int i = 9;
   int * p;
   * p = i; // 那么为什么* p 不能被别的变量赋值呢?
   printf(" %d ",* p);//这样运行就显示指针出错。。。 * p  没东西。
   return 0;
}
搜索更多相关主题的帖子: return 
2015-11-08 10:32
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:8 
p未明确指向,就像要做一个路标,你准备好了做路标的材料,也用了好半天把材料加工成路标形状,可是你不在路标上写任何字就准备用它,大致上编译器会理解成没写任何字的路标默认指向地面,你说人到这路标边还能往地底下钻吗?

能编个毛线衣吗?
2015-11-08 12:13
lzl123321
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:41
专家分:148
注 册:2015-10-15
收藏
得分:2 
以下是引用朔源在2015-11-8 10:32:14的发言:

int main(void)
{
   int i = 9;
   int * p;    定义一个指向整形的指针变量
   * p = i; //  * p返回数值P指向的某个地址存储的数值(可能是一个垃圾值), 你可以为变量赋值,但不能为常量赋值。
   printf(" %d ",* p);//这样运行就显示指针出错。。。 * p  没东西。->打个比方:相当于你要为正整数3定义一个变量i,肯定不行的。
   return 0;
}


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
新手 个人看法,不对之处欢迎指正~
2015-11-08 13:55
随风的飞叶
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:90
专家分:158
注 册:2015-10-8
收藏
得分:2 
指什类型就是地址类型,不同类型的值之间无法赋值。
2015-11-08 20:43
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:2 
樓主始終在兜兜轉轉在指針概念上犯迷糊(好像學的時間也不短了)。指針的這種問題,在論壇上解答過無數次,都不會去看看舊帖的。當你發覺老傢夥基本上都不答理的話題,大概就是答厭答膩了的話題,最好意識到翻翻舊帖,再不濟,也說一句“查找過論壇舊帖希望獲得進一步解釋”,這樣人家也不會認爲你懶得可以。

授人以渔,不授人以鱼。
2015-11-08 21:23
X15810803158
Rank: 2
等 级:论坛游民
帖 子:49
专家分:36
注 册:2015-2-24
收藏
得分:4 
P没有指向i,所以是个垃圾数字, p = &i;
2015-11-08 22:44
朔源
Rank: 1
等 级:新手上路
帖 子:105
专家分:4
注 册:2015-9-22
收藏
得分:0 
谢谢各位的解答。我理解了 *p 和 i 类型不同,而且*p的指向也不确定,所以肯定是不能给 p 所指向的地址赋值的。
2015-11-11 15:41
快速回复:指针变量为什么不能被其他变量赋值。即(* p = i )为什么* p 不能被别 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016995 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved