C语言
文章平均质量分 75
Halo_nicetomeetyou
天道酬勤
展开
-
浅谈 指针数组&数组指针 指针函数 函数指针
很多人都说指针是C语言的精华,指针可以与数组、函数结合起来,形成指针数组,数组指针,指针函数,函数指针。可以看出,这四个名词两两对应,只是前后换了顺序而已,但是在本质上是有区别的。下面一起来研究一下它们。 首先,我们对指针和数组之间的关系进行研究。我们先理解,对于一个一维数组来说,我们可以定义一个一级指针来保存其数组名内的值,这是没有问题的。那么,如果有一个二维数组,我们定义一个二级指针原创 2017-03-26 13:44:24 · 364 阅读 · 0 评论 -
& | ^ ~ >> 和 <<运算符
一、按位与运算符(&) 将两个运算的数按照二进制位进行“与”运算。 规则: 0&0=0 0&1=0 1&0=0 1&1=1 两位同时为1结果才为1,,否则为0 注意: 负数按补码的形式参加按位与运算。 补码 = 反码 + 1 与运算的特殊用途: 1. 清零。将一个数的二进制形式与一个各位都为0的数进行与运算,结果为0. 2. 可以取一个数原创 2017-08-08 09:54:47 · 1110 阅读 · 0 评论 -
数组与指针
指针是一直困扰我的问题,下来就今天所学的知识结合做题来记录下自己对指针与数组之间联系的理解,如有错误,请高手指出。下面两道是课堂上老师给出的题目:题目一:char *c[] = { "ENTER", "NEW", "POINT", "FIRST" }; char **cp[] = { c+3, c+2, c+1, c }; char ***cpp = cp; int main(void)原创 2017-07-24 21:42:54 · 268 阅读 · 0 评论 -
结构体--字节对齐
一、字节对齐目的及原因 1.目的:为提高程序的性能 2.原因:为访问未对齐的内存,处理器需要做两次内存访问,而对于对齐的内存仅需要访问一次。 二、字节对齐要区分的四个概念 1.基本数据类型的自身对齐值:(以32位x86机器为例) char型:1字节 short型:2字节 int型、float型:4字节 double型:8字节 2.程序指定对齐值:#pra...原创 2018-03-25 14:32:03 · 617 阅读 · 0 评论 -
柔性数组
一、什么是柔性数组 柔性数组是数组大小待定的数组,C语言中结构体的最后一个元素可以使一个大小未知的数组。 二、柔性数组的用途 是为了满足需要变长度的结构体和使用数组时内存的冗余以及数组越界问题。 三、 用法 在结构体的最后,申明一个长度为空的数组,即可使得该结构体是可变长的。因为对编译器来说,此时长度为0的数组并不占用空间,因为数组名本身就不占空间,它...原创 2018-03-25 15:06:49 · 275 阅读 · 0 评论 -
const关键字
const关键字的作用: 1. 可以定义const常量,具有不可变性 2. 便于进行类型检查 3. 保护被修饰的东西,防止意外修改 4. 为函数重载提供了参考void fun(int i){}void fun(int i)const{}//是上面函数的重载5.可以节省空间,避免不必要的内存分配const A 定义一个常量, 声明的同时必须进行初始化,一旦完成,值将...原创 2018-03-25 16:45:19 · 247 阅读 · 0 评论