这是有声音的视频,请检查播放器或者声音输出设备。
这次学习的内容:linux_C语言_11 结构体,共同体,枚举类型,typedef定义类型
//=============================================================
#include <stdio.h>
#include <string.h>
struct student
{
int num;
char name[25];
int age;
}stu1, stu2;
main()
{
stu1.num=1;
//stu1.name="Zhan";
strcpy( stu1.name, "张三" );
stu1.age=30;
printf( "%d - %s - %d\n", stu1.num,stu1.name,stu1.age );
}
---------------------
struct student
{
int num;
char name[25];
int age;
}stu1={2, "李四", 40};
//==========================================================
结构体数组
#include <stdio.h>
struct student
{
int num;
char name[25];
int age;
}stu[3]={
{1,"张三",40},
{2,"李四",30},
{3,"王五",33}
};
main()
{
int i;
for(i=0;i<3;i++)
{
printf( "%d - %s - %d\n", stu[i].num,stu[i].name,stu[i].age );
}
}
--------------------------------
改成用指针 访问结构体数组
main()
{
struct student *p;
for( p=stu; p<stu+3; p++ )
{
printf( "%d - %s - %d\n", p->num,p->name,p->age );
}
}
//=====================================================
共同体
几种不同类型的变量存放到同一段内存单元中,不能对共同体初始化
#include <stdio.h>
union data1 /*共同体*/
{
int i;
float f;
char ch;
};
main()
{
printf("%d\n",sizeof(union data1));
printf( "%d ,%d ,%d \n", sizeof(int),sizeof(float),sizeof(char) );
union data1 d1;
d1.i = 100;
d1.ch = 'a';
printf( "%c \n", d1.i );
}
//=======================================================
枚举类型
枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值
#include <stdio.h>
main()
{
enum weekday
{
sun,mon,tue,wed,thu,fri,sat
} a,b,c;
a=sun;
b=mon;
c=tue;
printf( "%d,%d,%d \n",a,b,c );
}
--------------
a=0;b=1; 是错误的。sun=5;mon=2;sun=mon; 也是错误的
枚举元素本身由系统定义了一个表示序号的数值,从0 开始顺序定义为0,1,2…。
在weekday中,sun值为0,mon值为1, …,sat值为6。
//========================================================
typedef 定义类型
#include <stdio.h>
main()
{
typedef int INTEGER;
INTEGER a = 100;
printf( "%d \n" , a );
}
视频就到这里结束了, 88