数组的值是一个指针常量,但数组不是一个指针常量。因为在以下两种场合下,数组和指针常量的表现不一样。sizeof和&, sizeof返回整个数组的长度,而不是指向数组的指针长度,&返回指向数组的指针,而不是指向某个指针常量的指针
数组当函数参数的时候,因为数组的值是一个指向数组零元素的指针,所以他会将这个指针通过值传递传递给函数。
静态初始化和自动初始化,静态初始化只初始化一次。自动初始化每次进入代码块作用域都要进行初始化
数组元素的存储顺序,多维数组的元素存储顺序是按照最右边的下标率先变化的原则,称为 行主序(row major order).
编写一维数组的函数参数时,既可以写成数组形式,又可以写成指针形式,但多维数组只有第一维能这样选择,其他维都必须写成数组形式.这样编译器才能够推断每个子维的长度
多位数组中,只有第一维的长度会被自动计算出来.
聚合数据类型能够同时存储超过一个的单独数据,c语言提供了两种类型的聚合数据类型,数组和结构。 数组是相同类型的元素的集合,他的每个元素是通过下表引用活指针间接访问来选择的
结构也是一些值的集合,这些值称为它的成员,但一个结构的各个成员可能具有不同的类型,
结构变量属于标量类型.
编译器按照成员列表的顺序一个接一个的给每个成员分配内存,只有当存储成员时需要满足正确的边界对齐要求时,成员之间才可能出现用于填充的额外内存空间
offsetof宏 确定结构某个成员的实际地址
位段的声明和结构类似,但它的成员是一个或多个位的字段,这些不同长度的字段实际上存储于一个或多个整形变量中.
位段的声明和任何普通的结构成员声明相同,但是有两个意外,首先,位段成员必须声明为int,signed int 或unsigned int类型,其次,在成员名的后面是一个冒号和一个整数,这个整数指定该位段所占用的位的数目
用signed int 或unsigned int显式的声明位段是个好主意,如果把位段声明为int类型,它究竟被解释为signed int或者unsigned int是由编译器决定的
联合的声明和结构类似,但它的行为方式却和结构不同,联合的所有成员引用的是内存的相同位置. c
分享到:
相关推荐
《C和指针》读书笔记.pdf
你是直接操纵对象,还是用某种基于特殊语法的间接表示(例如C和C++里的指针)在操纵对象? 所有的这一切在java里都得到了简化。一切被视为对象,因此可采用单一固定的语法。尽管一切都“看作”对象,但操纵的标志符...
《C程序设计》读书笔记 第一章 概述 第二章 数据类型、运算符与表达式 第三章 最简单的c程序设计 第四章 逻辑运算和判断选取控制 第五章 循环控制 第六章 数组 第七章 函数 第八章 预编译处理 第...
嵌入式系统开发之道的读书笔记 ... 2、中断分为CPU自行产生的内部中断及由外围设备产生的外部中断。 3、*(volatile unsigned char*)0x300022&=0xfd; C语言用指针取地址里面的东西 asm("xld.w %r0,0x300022"); Asm...
读书笔记类型多种多样,有摘抄型的,有感想型的,有批注型的,有摘要型的……
(有些C头文件被转换为C++头文件,去掉扩展名,并在前面加c,如cmath) 2、名称空间——相当于Java中的package,using编译指令相当于Java中的import。头文件没有.h前缀时,类、函数和变量是C++编译器的标准组件,被...
由于本人水平有限,仓库中的知识点有来自本人原创、读书笔记、书籍、博文等,非原创均已标明出处,如有遗漏,请 issue 提出。本仓库遵循 CC BY-NC-SA 4.0 协议,转载请注明出处。 :bookmark_tabs: 目录 :plus: C/C++...
由于本人水平有限,仓库中的知识点有来自本人原创、读书笔记、书籍、博文等,非原创均已标明出处,如有遗漏,请 向issue 提出。此仓库引用于issue! 只面向初学者用于学习参考~ :bookmark_tabs: 目录 :plus: C/C++ ...
由于本人水平有限,仓库中的知识点有来自本人原创,读书笔记,书籍,博文等,非原创均已标明出处本仓库预先协议,转载请注明出处,不得用于商业目的。 :bookmark_tabs:目录 :plus: C / C ++ const ...
由于本人水平有限,仓库中的知识点有来自本人原创、读书笔记、书籍、博文等,非原创均已标明出处,如有遗漏,请 issue 提出。本仓库遵循 协议,转载请注明出处,不得用于商业目的。 :bookmark_tabs: 目录 :plus: C/...
由于本人水平有限,仓库中的知识点有来自本人原创、读书笔记、书籍、博文等,非原创均已标明出处,如有遗漏,请 issue 提出。本仓库遵循 协议,转载请注明出处,不得用于商业目的。 :bookmark_tabs: 目录 :plus: C/...
由于本人水平有限,仓库中的知识点有来自本人原创、读书笔记、书籍、博文等,非原创均已标明出处,如有遗漏,请 issue 提出。本仓库遵循 协议,转载请注明出处,不得用于商业目的。 :lollipop: 广告与打赏:个人...
由于本人水平有限,仓库中的知识点有来自本人原创、读书笔记、书籍、博文等,非原创均已标明出处,如有遗漏,请 issue 提出。本仓库遵循 CC BY-NC-SA 4.0 协议,转载请注明出处。 :lollipop: 如果仓库内容对你有所...
由于本人水平有限,仓库中的知识点有来自本人原创、读书笔记、书籍、博文等,非原创均已标明出处,如有遗漏,请 issue 提出。本仓库遵循 协议,转载请注明出处,不得用于商业目的。 :lollipop: 广告与打赏:个人...
由于本人水平有限,仓库中的知识点有来自本人原创、读书笔记、书籍、博文等,非原创均已标明出处,如有遗漏,请 issue 提出。本仓库遵循 协议,转载请注明出处,不得用于商业目的。 :bookmark_tabs: 目录 :plus: C/...
由于本人水平有限,仓库中的知识点有来自本人原创、读书笔记、书籍、博文等,非原创均已标明出处,如有遗漏,请 issue 提出。本仓库遵循 协议,转载请注明出处,不得用于商业目的。 :bookmark_tabs: 目录 :plus: C/...
由于本人水平有限,仓库中的知识点有来自本人原创、读书笔记、书籍、博文等,非原创均已标明出处,如有遗漏,请 issue 提出。本仓库遵循 协议,转载请注明出处,不得用于商业目的。 :bookmark_tabs: 目录 :plus: C/...
这篇介绍了静态成员函数与静态成员变量,是我的读书笔记,我希望它够简短但又比较全面,起到复习的作用。如果有一些C++知识记不清楚了,它可以帮你很快回忆起来。 复习C语言的static关键字 (1)加在局部变量的前面...
由于本人水平有限,仓库中的知识点有来自本人原创、读书笔记、书籍、博文等,非原创均已标明出处,如有遗漏,请 issue 提出。本仓库遵循 CC BY-NC-SA 4.0 协议,转载请注明出处。 :lollipop: 如果仓库内容对你有所...