摘要: int **(*abc[6])() adb[6]:下标优先级高于*,所以是abc是数组 *abc[6]:数组里面存的是指针ptr,F替换*abc[6] int **F():ptr指向一个函数,这个函数的返回值是int** int *(*abc())() abc():abc是一个函数 *abc():a 阅读全文
posted @ 2021-07-04 22:38 Erden 阅读(60) 评论(0) 推荐(0) 编辑
摘要: alloca() 在堆栈上分配内存,而不像malloc在堆上分配内存。 函数返回时,申请的内存会自动释放。 C99已支持可变长数组,所以没有必要使用alloca()。 阅读全文
posted @ 2021-07-04 21:04 Erden 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 作为右值: 结构名:存储在结构体内的值 数组名:指向数组第一个元素的指针 作为左值: 结构名:结构体存储的内存位置 数组名:因为是常量,所以不能作为左值 阅读全文
posted @ 2021-07-04 16:41 Erden 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 如果想在不同的时刻把不同的东西存储与同一个内存位置,那就应该使用联合。 联合的初始化比较特殊,只需要初始化第一个成员类型即可(必须是第一个成员变量)。 阅读全文
posted @ 2021-07-04 16:32 Erden 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 位段的声明和结构体的声明相同。除了: 位段成员必须声明为int,signed int,unsigned int(最好不要使用int,因为int是有符号还是没有符号是由编译器决定的)。 成员名的后面是一个冒号和一个整数,整数表示这个位段所占用的位数(bit)。 例子 1: 例子 2: 1 #inclu 阅读全文
posted @ 2021-07-04 16:25 Erden 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 自引用: 实现链表/树的时候,我们用到结构体的自引用。 不完整的声明: 阅读全文
posted @ 2021-07-04 16:24 Erden 阅读(139) 评论(0) 推荐(0) 编辑