函数外面对单个结构体成员进行赋值出错
2017-07-20 14:07
337 查看
关于“为什么整型的就可以,结构体类型的就不能这么赋值呢?”——整形等常规数据类型由编译器自动识别,而自定义的数据类型(楼主自定义的结构体类型),编译器在编译阶段无法识别,故出错。
关于“在函数外单个初始化”——在入口函数(main函数)之前定义变量及初始化,得到的是全局变量。编译器对程序进行编译时,必须先构造或者创建全局变量,为全局变量分配内存,再找入口函数;而在创建全局变量时,该变量类型(楼主自定义的结构体)编译器无法识别,故无法创建该全局变量。
进入main函数之后,数据类型(楼主自定义的结构体)被定义,因此再进行变量定义及初始化,肯定就不会出错。
关于“在函数外单个初始化”——在入口函数(main函数)之前定义变量及初始化,得到的是全局变量。编译器对程序进行编译时,必须先构造或者创建全局变量,为全局变量分配内存,再找入口函数;而在创建全局变量时,该变量类型(楼主自定义的结构体)编译器无法识别,故无法创建该全局变量。
进入main函数之后,数据类型(楼主自定义的结构体)被定义,因此再进行变量定义及初始化,肯定就不会出错。
相关文章推荐
- 结构体 CString QString 成员赋值出错
- OC对象里面包含的结构体类型的属性,不能对该结构体属性的成员单个进行修改
- C++类 给结构体成员 函数指针 赋值
- 为结构体中的CString成员赋值出错的问题
- 为结构体中的CString成员赋值出错的问题
- 为结构体中的CString成员赋值出错的问题
- 在主函数中和在成员函数中进行初始化的区别
- 第3周课后实践·阅读程序(1)-通过公共函数为私有成员赋值
- 结构体中的数组成员的赋值问题
- 为什么对于类的const成员,只能使用初始化列表,而不能在构造函数内部进行赋值操作
- 第二课:类与对象(内联函数、成员函数重载、类与结构体、this指针)
- 【前端js】实现一个函数可以对JavaScript中的5种主要数据类型进行赋值
- 以复杂结构体为参数在子函数中进行赋值,并返回值给主函数
- 内存字节对齐---对结构体非常重要。不能用memcpy简单的移动指针进行赋值
- 结构体3 使用函数赋值
- C-关于结构体中字符数组的单个赋值
- C99标准支持结构体按成员名称进行指定初始化。
- //设计一个点类,其中包含一对坐标点数据成员、一个求两个点之间距离的友元函 //数 dist 和显示坐标点的成员函数,并用数据进行测试
- 成员变量为函数指针的结构体的理解
- 【继承与多态】C++:继承中的赋值兼容规则,子类的成员函数,虚函数(重写),多态