给struct中的变量赋值?

hegaoqing 2003-06-06 03:36:05
typedef struct _M
{
int x;
}p;

在一个类 TestDlg。cpp 中
void CTestDlg::SetX()
{
p.x = 5;
}

这样赋值有问题吗?
...全文
219 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxyin1 2003-06-07
  • 打赏
  • 举报
回复
楼上讲的很详细了:)
wsy8080 2003-06-07
  • 打赏
  • 举报
回复
需要重新定义结构的一个变量如pf
如下::
void CTestDlg::SetX()
{
p pt;
pt.x=5;
}
flmttm 2003-06-07
  • 打赏
  • 举报
回复
p是结构体名,只是一个空名,只有在类实现中实例话后,系统才为它分配一内存空间,此时才
能赋值
hegaoqing 2003-06-07
  • 打赏
  • 举报
回复
我觉得这样也行
void CTestDlg::SetX()
{
_M a;
a.x = 5;
}
qqxucom 2003-06-07
  • 打赏
  • 举报
回复
呵呵...
孤必有邻 2003-06-07
  • 打赏
  • 举报
回复
问题在于对typedef及struct的语法结构的认识,小结如下:
//1.
struct
{
int v;
} a;//变量
//2.
struct B//类型
{
int v;
} b;//变量
struct B bb;
//3.
typedef struct
{
int v;
} C;//新类型
C c;//没有struct
//4.
typedef struct D//类型
{
int v;
} E;//新类型
struct D d;//有struct
E e;//没有struct
...
a.v=100;
b.v=100;
bb.v=100;
c.v=100;
d.v=100;
e.v=100;
建议使用typedef,这样会显示自动提示
43731894 2003-06-07
  • 打赏
  • 举报
回复
呵呵
int=3;这句话合法吗?楼主好好想一下.
思危 2003-06-06
  • 打赏
  • 举报
回复
p 是一个typedef 的类型,不是变量,不能赋值。

如下正确:
p myp; //定义变量
myp.x = 5; //赋值

你通过类型可以对静态成员变量赋值,如:
typedef struct _M
{
int x;
static int y;
}p;

int p::y;

在一个类 TestDlg。cpp 中
void CTestDlg::SetX()
{
p::y = 5;
}
jack_wq 2003-06-06
  • 打赏
  • 举报
回复
同意jemmylau(枕头)的观点,结构体不能赋值,变量才可以!
suxk 2003-06-06
  • 打赏
  • 举报
回复
对,要用p来声明变量
guangjui 2003-06-06
  • 打赏
  • 举报
回复
P是struct _M类型,怎么能用p.x来赋值呢?同意楼上的写法
jemmylau 2003-06-06
  • 打赏
  • 举报
回复
p是结构体,就想int一样

必须用它声明一个对象或者叫做变量,给对象或者变量命名。
bear_c 2003-06-06
  • 打赏
  • 举报
回复
void CTestDlg::SetX()
{
p _p;
_p.x = 5;
}

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧