首页 > 代码库 > 全局结构体变量的初始化以及将结构体变量转换为char类型输出问题
全局结构体变量的初始化以及将结构体变量转换为char类型输出问题
#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.htmlvoid 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);}
全局结构体变量的初始化以及将结构体变量转换为char类型输出问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。