linux C 开发中重要的数据结构——结构体
2016-02-26 11:13
323 查看
在linux的驱动开发中,最常用的,也最重要的数据结构是结构体,它也最容易使人混淆。要掌握结构体,首先要弄明白运算符的优先级:
在所有运算符中,下面4个运算符的优先级是最高的:结构体运算符“.”和“->”、用与函数调用的“()”以及用于下标的“[]”,因此它们同操作数之间的结合也最紧密。
例如对:
struct {
int len;
char *str;
}*p;
表达式
++p->len :增加len的值,其中的隐含括号关系是++(p->len)
(++p)->len: 先执行p的加1操作,再取len的值
(p++)->len: 先取len的值,再执行p的加1操作
*p->str: 取指针str所指向的对象的值
*p->str++:先取指针str所指向的对象的值,然后将str加1
(*p->str)++:先取指针str所指向的对象的值,然后将对象值加1
*p++ ->str:先取指针str所指向的对象的值,然后将P值加1
在所有运算符中,下面4个运算符的优先级是最高的:结构体运算符“.”和“->”、用与函数调用的“()”以及用于下标的“[]”,因此它们同操作数之间的结合也最紧密。
例如对:
struct {
int len;
char *str;
}*p;
表达式
++p->len :增加len的值,其中的隐含括号关系是++(p->len)
(++p)->len: 先执行p的加1操作,再取len的值
(p++)->len: 先取len的值,再执行p的加1操作
*p->str: 取指针str所指向的对象的值
*p->str++:先取指针str所指向的对象的值,然后将str加1
(*p->str)++:先取指针str所指向的对象的值,然后将对象值加1
*p++ ->str:先取指针str所指向的对象的值,然后将P值加1
相关文章推荐
- 数据结构与算法学习笔记(二)
- 慕课网----大话PHP设计模式 二(数据结构的php实现,链式操作,php魔方方法的使用)
- 算法竞赛入门经典(第二版)-刘汝佳-第六章 数据结构基础 习题(12/14)
- redis内部数据结构--简单动态字符串sds
- 数据结构-5
- 数据结构——二叉查找树
- 算法竞赛入门经典(第二版)-刘汝佳-第六章 数据结构基础 例题(17/22)
- 数据结构与算法复习
- hdu1828[扫描线矩形周长并]
- MySQL索引背后的数据结构及算法原理
- 数据结构总结(3)
- 栈和堆的数据结构的差异
- HDU3255[farm] (扫描线方体体积并)
- 数据结构之队列(六)
- 数据结构与算法基础(一)
- 数据结构总结(2)
- 第 10 章 数据结构
- 大话数据结构--第1章 数据结构绪论
- 数据结构与算法学习笔记(一)
- 数据结构复习之【排序】