如果 你是真正的 高级 程序师 或是 资深人士 帮帮忙 鄙人 在这谢谢了

来源:百度知道 编辑:UC知道 时间:2024/06/05 16:49:24
#include<iostream>
using namespace std;
struct s
{
int *p;
int i ;
};
main()
{
int *p = &s.i;// 这个 怎么就编译错误(书上说 这个没错误)
p[0] = 4;
p[1] = 3;
s.p = p;
s.p[1] = 1;
s.p[0] = 2;// 问题 书上说的 只是在这里啊

}
高手 说的详细点 啊
问题补充:我这是 从 word 复制过来的 分号 不是 问题 就是最后一句 参考书说 有问题
说 代表了这个意思(*(int *) 1) = 2 那个声明 是我忘写了 不好意思 我就是看不懂参考书 说最后一句 代表了是(*(int *) 1) = 2 这个意思 这事为什么 啊
这事 07年 某公司的面试题
第二 学MFC 之前 (我已经学了C++) 还应该 学习了解什么 推荐两本书 感觉 从 C 直接 到 MFC 真 让人 接受不了 看不懂 MFC 消息 什么的

int *p = &s.i;// 这有问题啊
struct s只是你定义的一个结构, 你还没声明呢,不能直接引用,至少要有一个 struct s a; 之后才能用 a.i;或a.p;&a.i;什么的
而直接用s.i时没有意义的。

请注意分号..句号..括号等
要是在英文输入法状态下输入的
你说是直接从WORD复制的吧...语句如果没错就是符号问题了
我看你出问题那行的分号就和其他行的分号明显不同

指针p是int型,而变量s是结构体类型,类型不同,所以不能赋值