回 帖 发 新 帖 刷新版面

主题:请教:vc中自定义结构体的初始化的问题

在vc中自定义一个point结构体,但初始化时报错:


                  struct point
        {double x;
         double y;
        };
        point p={3,5};
报错提示:
initialization of 'p' is skipped by 'case' label
 see declaration of 'p'
请教高手,在vc中难道初始化一定要一个元素一个元素的赋值吗?并且如下赋值也不行:
                  struct point
        {double x;
         double y;
        }point p={3,5};
请教高手,这个问题该如何解决?        
        
        

回复列表 (共6个回复)

沙发

第一个对的啊~可以的
第二个格式错误~结构体定义玩要 ";"分号的

板凳

第一个格式也不行,第二个改为:
struct point
        {double x;
         double y;
        }p={3,5};
也不行,是不是我建的平台不对,我建的是win32 application的平台,难道跟这个有关吗?

3 楼

我现在建了个win32 console application 在这里就行,但为什么建win32 application这个平台里不行呢?在这win32 application平台里要如何去初始化呢?

4 楼

用最传统的p.x=3;p.y=5;不行吗?

5 楼

用传统的上述赋值方法可以,但我觉得很麻烦,你想,假如是一个结构体数组呢?而且我记得《C++程序设计》里是可以按照我上述方法赋值的,不知道你在你的编译器里调试行吗?是不是我的平台建错了?

6 楼


你那个方法是可以的。不过我你那个结构体定义大括号后是不是少了一个“;”
还有可能就是你说的平台问题。[em2]

我来回复

您尚未登录,请登录后再回复。点此登录或注册