C++的struct

来源:百度知道 编辑:UC知道 时间:2024/05/17 10:53:44
#include <iostream>
#include <fstream>
#include <string>
using namespace std;

struct candbar
{
char name[20];
double mass;
int ka;
};

int main()
{
candbar snack[3];
snack[0]={
"mocha munch",
2.3,
350
};

cout<<snack[0].name<<endl<<snack

[0].mass<<endl<<snack[0].ka<<endl;
return 0;
}

为什么老提示给snack副值的那个地方{或}或;语法错误?

bati8888...说别人的时候先运行一遍人家的程序好不好,鄙视你这种人
kakucartoon的不对,struct candbar 里面有char name[20];,怎么能像下面这样赋值呢!!
snack[0].name="M...";
**************************************

snack[0]={
"mocha munch",
2.3,
350
};
要写成这样
strcpy(snack[0].name, "mocha munch");
snack[0].mass = 2.3;
snack[0].ka = 350;

理由很简单:
只有在定义时才能用这样赋初植
改成
candbar snack[1]={"M...",2.3,350};

candbar snack[3];
snack[0].name="M...";
snack[0].mass=2.3;
snack[0].ka=350;
即可

靠,: asanasdake 胡扯啊,自己不懂就别忽悠人。 kakucartoon 解释正确!结构体不能赋值的,snack[0]其实是个指针。