标签:style blog http io color ar sp 数据 div
#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);
}
全局结构体变量的初始化以及将结构体变量转换为char类型输出问题
标签:style blog http io color ar sp 数据 div
原文地址:http://www.cnblogs.com/leijiangtao/p/4084078.html