结构体指针赋值报错

2020-01-15 19:21发布

本帖最后由 Claude 于 2017-10-10 13:42 编辑

typedef struct
{
  int a;
  int b;
}ST;

ST *OO;

ST &OO;//这样写报错


OO->a=10; 只能内存地址  不能对实体赋值

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
20条回答
sbusr
1楼-- · 2020-01-17 04:08
“ST &OO;//这样写报错”
这里的&就是不符合语法的。没有这样用的,C++里有引用,但好像也只能在声明函数形参的时候使用。
C里面必须先定义指针ST *OO;再用同类型的变量的地址给指针赋值。
huangqi412
2楼-- · 2020-01-17 09:56
 精彩回答 2  元偷偷看……
xiaotaiyang
3楼-- · 2020-01-17 10:32
“关于结构体指针问题   ”不是合格的标题。 违反版规11。请立即阅读版规(点击进入: http://www.amobbs.com/thread-5607394-1-1.html),自行修正标题。 否则自发帖后24小时后将失去编辑帖子的权限,会被管理员封锁ID。
zcllom
4楼-- · 2020-01-17 15:05
本帖最后由 zcllom 于 2017-10-12 13:34 编辑
STT 发表于 2017-10-9 17:57
typedef struct
{
  int a;


用了这么久的 C,给结构体中的某成员赋值都是用最普通的方式。
今天遇到这个办法,知道它可行。但还不解其中的原理?能告知否? 也就是为什么要借助函数和数组来实现?
security
5楼-- · 2020-01-17 20:52
zcllom 发表于 2017-10-12 13:18
用了这么久的 C,给结构体中的某成员赋值都是用最普通的方式。
今天遇到这个办法,知道它可行。但还不解 ...

请去 2 楼,去那边的链接看看。
这个是指针的概念,指针只是一个指针,需要指向有效的存储空间,才有意义。
这边的数组,便是有效的存储空间,而不是为什么要借助函数和数组来实现。
zcllom
6楼-- · 2020-01-18 00:33
security 发表于 2017-10-12 14:19
请去 2 楼,去那边的链接看看。
这个是指针的概念,指针只是一个指针,需要指向有效的存储空间,才有意义 ...

是我多虑了,看上面的讨论,我还以为:不能用结构体指针操控它所指向的结构体中的成员进行赋值。说到底还是用的少,容易被带歪,多用多看调试信息通过实践印象更深刻。

一周热门 更多>