全局结构体变量的初始化以及将结构体变量转换为char类型输出问题
2014-11-08 21:51
363 查看
#include<stdio.h> #include<stdlib.h> struct node{ int a; int b; char c; char d; }; /*struct node A; 全局变量不能在这儿进行初始化,令我震惊啊,错误让你迷茫到死 A.a=1; A.b=2; A.c='a'; A.d='c';*/ //struct node A={1,2,'a','c'};但是这种写法可以 1:初始化和赋值不是一个概念。 2:// 在全局空间(即函数体之外)只能执行数据类型、变量、函数等的定义及变量的初始化,其他任何操作都不被允许。 struct node A={1,2,'a','c'};// 这种写法是变量定义并初始化,允许出现在全局空间中 struct node A A.a = 1;// 这种写法是变量赋值。不允许出现在全局空间中。而编译器会把它当做变量定义来处理,于是会报告缺少类型标识符 解释来自:http://bbs.bccn.net/thread-343840-1-1.html void print(const char *obj) { printf("结构体变量A中数据成员\n"); struct node *B; B=(struct node *)obj; printf("%d\n",B->a); printf("%d\n",B->b); printf("%c\n",B->c); printf("%c\n",B->d); } void main(){ struct node A;//只能放到这儿 A.a=1; A.b=2; A.c='a'; A.d='c'; print((char *)&A); } ****************************** #include<stdio.h> #include<stdlib.h> struct node{ int a; int b; char c; char d; }; void print(const char *obj) { printf("结构体变量A中数据成员\n"); struct node B; B=(*((struct node*)obj)); printf("%d\n",B.a); printf("%d\n",B.b); printf("%c\n",B.c); printf("%c\n",B.d); } void main(){ struct node A; A.a=1; A.b=2; A.c='a'; A.d='c'; print((char *)&A); }
相关文章推荐
- 查找程序中的错误(平凡的程序,不平凡的问题) 4.不定义第三个变量,互换两个变量的值 5.char 类型转换 6.输出 10~100 之间的随机整数
- 关于 swift 开发的变量或属性声明的建议(避免类型转换以及带来的强转崩溃问题)
- PHP-"php://(类型)"访问各个输入/输出流以及全局变量$HTTP_RAW_POST_DATA讲解
- C++中结构体的类型定义和初始化以及变量引用
- android自定义Application全局变量不能类型转换的问题
- C#枚举 枚举和int以及string类型之间的转换 结构 重载 全局变量
- android自己定义Application全局变量不能类型转换的问题
- android自定义Application全局变量不能类型转换的问题
- 变量初始化问题以及char的最值问题
- 关于JAVA中变量类型转换以及精度问题
- 全局结构体变量和局部变量系统如何初始化问题
- NET中反射实现 可空类型 与基础类型的转换 以及获取指定属性的大小问题
- 关于C/C++中全局变量的初始化问题的深入思考
- 解决 C++ Bulider 变量类型转换问题
- 类型转换、变量初始化 等等
- char*数组(c类型字符串)和c++中的string的转换、字符串比较、char*数组等问题
- C# char和byte 以及string之间的转换问题
- 定义一个结构体变量(包括年、月、日),编写程序,要求输入年月日,程序能够计算并输出改日是本年中的第几天。注意闰年问题。(switch语句)
- 参数中有const时进行数据类型的转换问题-固定变量转常量
- 51平台下初始化文件的引入导致全局变量无法初始化的问题