大家好,问一个结构体赋值的问题
时间:2010-06-29
来源:互联网
1.定义一个结构体
struct list{
char name[50];
struct list *ptr;
};
2.声明一个结构体变量
struct list jack;
3.给该结构体变量赋值
jack={"jack",NULL};
编译时出错,出错信息如下:
error: expected expression before '{' token
程序的其他部分保证都没有问题,由于实际需要,只能是先声明,后赋值。
大家看看,不胜感谢!
作者: fansity23 发布时间: 2010-06-29
作者: shang2010 发布时间: 2010-06-29
作者: 新右卫门 发布时间: 2010-06-29
作者: c/unix 发布时间: 2010-06-29
这是初始化方法
作者: proghua 发布时间: 2010-06-29
编译器会报错:重定义了。还有别的解决方法吗?
作者: fansity23 发布时间: 2010-06-29
自己想的呵呵错了,有什么解决方法吗?我们要求的是必须声明和赋值分开来做
作者: fansity23 发布时间: 2010-06-29
struct list jack;
struct list tmp = {"jack",NULL};
jack = tmp;
////////////////////////////
struct list jack;
strncpy( jack.name, "jack", sizeof(jack.name) );
jack.ptr = NULL;
作者: 没本 发布时间: 2010-06-29
恩谢谢,第一种我刚试了可以,谢谢了,第二种方法没试,非常感谢
作者: fansity23 发布时间: 2010-06-29
参见 http://hi.baidu.com/hellogcc/blo ... 04d12bcefca30e.html
假设struct foo和structure被声明为:
struct foo {int a; char b[2];} structure;
这里有个例子,用来使用复合文字构建一个struct foo:
structure = ((struct foo) {x + y, 'a', 0});
其等价于如下写法:
{
struct foo temp = {x + y, 'a', 0};
structure = temp;
}
作者: EricFisher 发布时间: 2010-06-29
自己想的呵呵错了,有什么解决方法吗?我们要求的是必须声明和赋值分开来做
fansity23 发表于 2010-06-29 18:39
什么公司这么要求?!怎么说声明变量时赋初值也是种好习惯啊
作者: sbc19861004 发布时间: 2010-06-29
你可以加上个构造函数啊,很方便的。偶就这样干。。。


LZ说的是赋值啊,我说的是初始化,sorry。。。。
作者: donglongchao 发布时间: 2010-06-29
涉及到其他的调用
作者: fansity23 发布时间: 2010-06-29
呵呵谢谢
作者: fansity23 发布时间: 2010-06-29
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28