c语言中ctruct结构体类型的使用

不进行初始化,在main函数中进行赋值
/* Note:Your choice is C IDE */
#include "stdio.h"
   struct Student{
    int num;//学号
    char name[10];//姓名
    char address[30];//地址
    char sex;//性别
    int age;//年龄
    }stu1,stu2;
void main()
{
    stu1.num=2333;
    /*stu1.name="张三"; 
    错误写法,这里面的name是一个数组名
    如果要对一个字符数组用字符串的形式赋值,必须在初始化的时候才可以
    但是可以从键盘利用%s一次输入一个字符串*/
    printf("请输入姓名:");
    scanf("%s",stu1.name);
    printf("请输入你的地址:");
    scanf("%s",stu1.address);
    stu1.sex='f';
    stu1.age=18;
    printf("%d %s %s %c %d",stu1.num,stu1.name,stu1.address,stu1.sex,stu1.age);
}



结果显示:
请输入姓名:李小白
请输入你的地址:China
2333 李小白 中国 f 18


注意:
用%s读入的一行字符串传到数组之后,仍然能够正常输出数组当中第几号位元素
例如在上面的代码中再加入一行输出语句的话
    printf("%c",stu1.address[1]);
    就会输出address数组当中的address[1],即  h
直接进行初始化
/* Note:Your choice is C IDE */
#include "stdio.h"
   struct Student{
    int num;//学号
    char name[10];//姓名
    char address[30];//地址
    char sex;//性别
    int age;//年龄
   }stu1={2010,"李白","北京",'f',18},stu2;
void main()
{  
    printf("%d %s %s %c %d",stu1.num,stu1.name,stu1.address,stu1.sex,stu1.age);
}



结果显示:
2010 李白 北京 f 18

说明:
(1)结构体类型并非只有一种,而是可以设计出许多种结构体类型,例如
struct Teacher
struct Worker
struct Date等结构体类型
各自包含不同的成员

(2) 成员可以属于另一个结构体类型。
struct Date    
{ int month; int day; int year; };
  struct Stu
  { int num;char name[20];
char sex;int age;
struct Date birthday;
char addr[30];
  };

发布了195 篇原创文章 · 获赞 76 · 访问量 6990

猜你喜欢

转载自blog.csdn.net/qq_45696288/article/details/104949765