结构体小结
来源:互联网 发布:修水县金域名都乱收费 编辑:程序博客网 时间:2024/06/05 15:05
结构体小结:
1.首先是对于结构体的定义,如果只有一个结构体的话,应用的话相对来说比较简单,但是,如果一个结构体的成员引用其他的结构体的话,记忆就容易出现混乱,例如:
struct date
{
int day;
int mouth;
int year;
};
struct studet
{
int num;
struct date.year;//这个是今天定义结构体时思维出现的混乱,和引用混在了一起,正确的是 struct date birthday;
};
这是在用的时候容易出现的问题,而且在定义时,一定要记得结构体定义结束时,加“;”,幸好这个会报错,不然找起来很难找。
2.对结构体成员进行初始值得时候,如果是初始化字符串,一定要记得加 “ ” ,好吧,这个也是细节问题。
3.结构体变量整体做函数的参数,在函数的调用过程中,是进行值传递;
4.对于共用体,结构体为他分配的空间是他一个成员所占内存的最大空间,结构体则是成员所占的内存中和。
5.对于枚举类型,枚举常量所表示的是整数类型;
enum weekday{sun,mon,tus,wen,thu,fri,sat};
0 1 2 3 4 5 6,
给初始值时,默认从0给,每次加1,但如果人为的改变了其值,后面的值就会随之发生改变;
enum weekday{sun,mon=5,tus,wen,thu,fri,sat};
0 5 6 7 8 9 10
枚举类型一般不能直接输入或者输出,输入一般枚举常量(整数)进行转换,输出则一般通过switch 语句以字符串的方式进行;
6.一般而言,每次对结构体进行引用时,都要写 struct +类型名,比较烦啊,这个时候,可以用重命名,使用typedef,相当的好用阿,而且在写稍微大型的程序时,是相当的方便的;
但应该注意的是:typedef 是仅给已有的类型名进行重新的命名,但并不产生新的的数据类型;
7.结构体指针用的比较多,但是我觉得结构体学会定义就好,主要是在链表用。。。。
8,值得一提的是,
typedef struct date
{
int day;
int mouth;
int year;
}DATE,*STU;
在这个STU的应用,有时候还是蛮吊的,例如在链表的排序时,
typedef struct infor
{
char num[20];
char name[30];
char add[50];
struct infor *next;
}INFO;
typedef struct infor1
{
char num[20];
char name[30];
char add[50];
}INFO1,*stu;
STUINFO *sort(INFO *phead)
{
INFO *p1,*p2;
INFO1 *m1,*m2;
INFO1 t;
for(p1=phead;p1!=NULL;p1=p1->next)
{
for(p2=p1->next;p2!=NULL;p2=p2->next)
if(strcmp(p1->num, p2->num) > 0)
{
m1=(stu)p1;
m2=(stu)p2;
t=*m1;
*m1=*m2;
*m2=t;
}
}
print (phead);
return (phead);
例 stu 2与struct date *stu2 性质是一样的,用处还是蛮流弊的。
结构体就总结到这里;
- 结构体小结2
- 结构体小结
- 结构体小结
- C 结构体小结
- 结构体小结
- socket发送结构体 小结
- 结构体字节对齐小结
- 结构体枚举的小结
- 枚举以及结构体小结
- C语言结构体小结
- task_struct结构体成员小结
- C++结构体计算小结
- 结构小结
- 结构体与共用体小结
- c/c++结构体对齐小结
- 指针与结构体知识小结
- C语言结构体对齐小结
- 关于C++中结构体初始化小结
- 泛型
- HTTP状态码大全
- 文件尾判断 EOF feof()两种方式
- 山东理工大学第七届校赛总结
- 如何在CentOS 7上修改主机名hostname
- 结构体小结
- 记我遇到的各种值得记录的BUG集
- memcached完全剖析–1. memcached的基础
- Spring中监听器的详解
- C 语言基础学习
- UVA 12223 Moving to Nuremberg(树形DP)
- Python图像处理(3):视频显示
- ubuntu修改文件或目录权限
- memcached全面剖析–2. 理解memcached的内存存储