#include<stdio.h> #include<stdlib.h> #include<string.h> //用枚举来表示性别 enum Sex{ MALE, FEMALE, }; struct Student{ //架构体的成员 char name[1024];/*表示姓名一般用1024个字节*/ int age; int score; enum Sex sex; }; //是上面的简化 //typedef struct Student{ // char name[10]; // int age; // int score; // enum Sex sex; //}; Student //typedef给类型创建一个别名 typedef struct Student Student; int main(){ //struct Student是一个整体,构成了自定制的一种类型 //s的类型就叫struct Student, 而不是Student /*struct Student s;*/ //初始化,一一对应,不能再次赋值 Student s = { "zhangsan", 18, 100, MALE }; Student* p = &s; printf("%s\n", s.name); printf("%s\n", (*p).name);/*同上等价*/ printf("%s\n", p->name);/*同上等价*/ //修改内容 s.age = 20; printf("%d\n", s.age); //修改字符串,strcpy字符串拷贝,把一个字符串 //复制一份,复制到另一个数组中 strcpy(s.name, "lisi"); system("pause"); return 0; }
扩展知识:
C语言中不能直接使用 = 给字符串赋值.
但除了C语言之外,大部分编程语言都可以使用 = 进行字符串赋值
一个汉字占几个字节?
和操作系统/编译器无关,和字符编码方式相关.
1.GBK:windows简体中文版默认编码,用两个字节表示一个汉字.(用于中国大陆)
2.UTF-8:Linux 默认的编码方式,变长编码,对于汉字来说一般是三个字节.(全国通用)

浙公网安备 33010602011771号