标题:关于《C语言入门经典》指针 int *pointer=&number 这一个问题
只看楼主
萍民
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-8-19
 问题点数:0 回复次数:8 
关于《C语言入门经典》指针 int *pointer=&number 这一个问题
这本书第七章开头,定义了 int *pointer=&number;
    我想问的是 pointer指向的是number的地址,即:pointer=&number; 为何这个定义是 *pointer=&number;  
    抑或这句是这样理解的: int *pointer=NULL; pointer=&number;?
    刚起步自学的新手,求解答!
搜索更多相关主题的帖子: number C语言 经典 
2013-08-19 20:11
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
指针的定义最好这样写:
int* pointer = &number;
int*表明定义的是一个指向int型数据的指针,整个连在一起,强调这是不同于int的一个数据,像你上面那种写法就容易被误解那也是一个int。这个语句是声明的同时就赋值初始化了指针,直接把指针指向了number变量的地址(所以用取地址符&)。pointer是一个指针(int*),对它解引用,*pointer就是int型的数据。

虽然书上说两种写法都可以,而且C程序员更喜欢你那种,但从理解的角度来说,我不建议使用。当然,如果你理解了,怎么写都可以,个人习惯罢了。

授人以渔,不授人以鱼。
2013-08-19 20:18
awisebird_
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:82
专家分:185
注 册:2013-7-6
得分:0 
int *pointer=&number;
//可以分拆为
int *pointer;
pointer=&number;//先定义再赋值
2013-08-19 20:26
萍民
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-8-19
得分:0 
回复 2楼 TonyDeng
谢谢斑竹的解惑!
2013-08-19 22:21
hijk373
Rank: 2
等 级:论坛游民
帖 子:8
专家分:14
注 册:2012-7-19
得分:0 
其实这个可以这样理解的,int* pointer=&number;
看到我写的语句没?把int和*写在一起,pointer是一个 int* 类型的数据,该数据赋值为 &number
就和 int i =0;一样,i是一个整型数据,该数据赋初值为0;

回头看这个 int* pointer=&number; pointer是 int* (指向整型数据的指针)类型数据,该数据赋初值 &number;
这样好看多了吧。

以后呢,把指针类型的数据都这样写,好看也好理解。
2013-08-19 22:38
netaa001
Rank: 2
等 级:论坛游民
帖 子:73
专家分:69
注 册:2013-8-5
得分:0 
3楼正解!
2013-08-21 22:33
jg658237
Rank: 7Rank: 7Rank: 7
来 自:青藏高原
等 级:黑侠
帖 子:224
专家分:529
注 册:2013-8-8
得分:0 
pointer=&number是把地址赋给了指针,
int *pointer=&number   表示定义了pointer是一个指向number的指针变量,在定义的时候对指针变量的初始化,
你要明白pointer就是一个地址,
而*pointer是存放变量地址的变量。二者是有区别的,
搞清楚定义和赋值。
多看几遍书就明白了。继续坚持学好指针对你很有帮助。

武功再高也怕菜刀.
2013-08-22 11:52
guhemeng
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:100
专家分:165
注 册:2013-7-27
得分:0 
  你问题的关键点在于: 初始化 和 赋值 的区别。
int *pointer=&number; //这条语句是初始化

int *pointer;
pointer=&number;   //赋值

可度娘或者参考相关C语言书籍!
2013-08-23 14:15
guhemeng
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:100
专家分:165
注 册:2013-7-27
得分:0 
回复 7楼 jg658237
你抢我的位置
2013-08-23 14:16



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-419372-1-1.html




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

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