| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1529 人关注过本帖
标题:结构指针
只看楼主 加入收藏
郭赛
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2017-12-9
结帖率:77.78%
收藏
 问题点数:0 回复次数:6 
结构指针
struct point
{
int a[];
int b[];
char c[];
}a,b
struct *pa,*pb;
两种情况:① struct point *pa = &a;
          ② pb = &b;
为什么上面加上*,下面则没有?

搜索更多相关主题的帖子: 结构 指针 struct point pb 
2017-12-10 19:02
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:0 
好象这样:
int a=123, b=456;
int *pa=&a;
int *pb;
pb = &b;
这样写好看点:
int* pa=&a;
但不能这样写:
int* pa=&a, pb=&b;
只能这样写:
int *pa=&a, *pb=&b;


2017-12-10 22:28
郭赛
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2017-12-9
收藏
得分:0 
回复 2楼 吹水佬
请问一下:
像int* pa=&a和int *pa=&a;是等价的么?
还有
int* pa=&a, pb=&b;
只能这样写:
int *pa=&a, *pb=&b;
这个算是C语言规定的么?
因为int *pa 的pa类型是int*啊。
2017-12-11 11:01
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:0 
回复 3楼 郭赛
从“声明”语法看:
int * pa; 从右到左看,变量名pa,左边有个 * ,声明变量 pa 是一个指针。
再看 * 左边是 int 类型符,声明 pa 指向的数据类型是int。
可见,int* pa和int *pa; 都是声明变量 pa 是指向数据类型int的指针。
int* pa, pb; 显然pa是int*,而pb左边无 * 是int。
所以只能这样写:
int *pa=&a, *pb=&b;
而不能写成:
int* pa=&a, pb=&b;
2017-12-11 12:02
郭赛
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2017-12-9
收藏
得分:0 
回复 4楼 吹水佬
你的意思是对于:int *a =&b;
*会与int结合作为一个声明么?
然后a=&b,就是赋值?
2017-12-11 14:04
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1705
专家分:4345
注 册:2007-12-27
收藏
得分:0 
看来明白了。

[此贴子已经被作者于2017-12-11 14:08编辑过]


对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2017-12-11 14:07
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:0 
以下是引用郭赛在2017-12-11 14:04:06的发言:

你的意思是对于:int *a =&b;
*会与int结合作为一个声明么?
然后a=&b,就是赋值?

int *a =&b; 是声明同时定义。
可以分开写好理解点:
int *a; 声明,*与a构成一个指针,int只是说明指针所指向的数据类型。
a = &b; 定义,指针a的地址属性是数据b的地址。
2017-12-11 14:59
快速回复:结构指针
数据加载中...
 
   



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

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