码迷,mamicode.com
首页 > 其他好文 > 详细

全局结构体变量的初始化以及将结构体变量转换为char类型输出问题

时间:2014-11-08 23:24:54      阅读:324      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!