结构的定义与使用

来源:互联网 发布:js打印九九乘法表 编辑:程序博客网 时间:2024/05/24 06:29

示例1:  

/* 基本定义 */
struct dd
{
 char name[10];
 int sex;
} bb;  /* 定义结构,并声明结构变量 bb */
/*
或: 直接定义结构
struct dd
{
 char name[10];
 int sex;
}
*/

main()
{
   /*声明两结构变量,并赋值*/
   struct dd aa,bb;    
   clrscr();
   printf("%s","please input date of 1:");
   scanf("%s",aa.name);
   scanf("%d",&aa.sex) ;
   printf("please input date of 2:");
   scanf("%s",bb.name);
   scanf("%d",&bb.sex);
  
   /*取出结构数据*/
   printf("of 1:%s ,%d",aa.name,aa.sex);
   printf("/n of2:%s %d",bb.name,bb.sex) ;
   getch();
}

main()
{
    /*在函数体内部定义 无名结构(结构变量)*/
    struct {
       char name[10];
       int sex;
     } aa;  
 
  scanf("%s",aa.name);
  scanf("%d",&aa.sex);
  printf("date: %s %d",aa.name,aa.sex);
  getch();
}

示例2: 无名结构
main()
{
    /*在函数体内部定义 无名结构(结构变量)*/
    struct {
       char name[10];
       int sex;
     } aa;  
 
  scanf("%s",aa.name);
  scanf("%d",&aa.sex);
  printf("date: %s %d",aa.name,aa.sex);
  getch();
}

求例3: 结构数组
main()
{
    /*定义结构变量*/
 struct st
 {
  char name[10];
  int sex;
 };
 int i;
 struct st st1[2];   /*定义结构数组*/
 /*结构数组赋值*/
 for(i = 0 ; i < 2 ; i++)
 {
  printf("of %d/n",i);
  scanf("%s",st1[i].name);
  scanf("%d",&st1[i].sex);
 }
    /*打印结构数组*/
 for(i = 0 ; i < 2 ; i++)
 {
  printf("%s  %d/n",st1[i].name,st1[i].sex);
 }
 getch();
}

示例4 结构指针
 main()
 {
  struct bb{
   char addr[40];
  };
  struct aa{
  struct bb addr;
  char name[5];
  };

 struct aa *date;
 int i;
 clrscr();
 date = (struct aa*)malloc(1 * sizeof(struct aa));

 scanf("%s",date->name);
 scanf("%s",date->addr.addr);
 printf("%s %s/n",date->name,date->addr.addr);
 free(date);
 getch();
}

 

  事实上 date->name 相关于 (*date).name

 

原创粉丝点击