【博客大赛】《C和指针》摘抄整理型笔记三

来源:本站
导读:目前正在解读《【博客大赛】《C和指针》摘抄整理型笔记三》的相关信息,《【博客大赛】《C和指针》摘抄整理型笔记三》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《【博客大赛】《C和指针》摘抄整理型笔记三》的详细说明。
简介:现在正在研读《C和指针》,其中有很多我认为必要的知识点,摘抄并简单整理了一下,记录在这里。

/*

读书笔记类型多种多样,有摘抄型的,有感想型的,有批注型的,有摘要型的……

现在正在研读《C和指针》,其中有很多我认为必要的知识点,摘抄并简单整理了一下,记录在这里。

*/

19.在C中,在几乎所有使用数组名的表达式中,数组名的值是一个指针常量,也就是数组第一个元素的地址。请不要根据这个事实得出数组和指针相同的结论。只有当数组名在表达式中使用时,编译器才会为它产生一个指针常量。

20.只有两种场合下,数组名并不用指针常量来表示——就是当数组名作为sizeof操作符或单目操作符&的操作数时。

21.你不能使用赋值符号把一个数组的所有元素复制到另一个数组,必须使用一个循环,每次复制一个元素。

22.定义一个数组,比如int array[10];

表达式2[array],是合法的!编译器会把它转换成对等的间接访问表达式*(2 + array)。2[array]与*(2 + array)、array[2]是无差别的。但在实际使用中,绝不应该写2[array],因为它会大大影响程序的可读性。

23.数组下标表达式a[2]和指针表达式*(a + 2)可以互换。在可读性方面,下标有一定的优势,尤其是多维数组中,但下标绝不会比指针更有效率。而指针有时会比下标更有效率。

24.指针比下标更有效率,前提是它们被正确地使用。不要为了效率上的细微差别而牺牲可读性,这点非常重要。

25.函数原型中的一维数组形参无需写明它的元素数目,因为函数并不为数组参数分配内存空间。形参只是一个指针,它指向的是已经在其他地方分配好内存的空间。这也解释了为什么数组形参可以与任何长度的数组匹配——它实际传递的只是指向数组第一个元素的指针。另一方面,这种实现方法使函数无法知道数组的长度,如果需要知道数组的长度,它必须作为一个显式的参数传递给函数。

26. sizeof的用途,它用于对数组中的元素进行自动计数。如,定义了array[ ],sizeof(array)的结果是整个数组所占用的字节数,而sizeof(array[0])的结果则是数组每个元素所占用的字节数。两个值相除,结果就是数组元素的个数。

27.头文件string.h包含了使用字符串函数所需的原型和声明。尽管并非必需,但在程序中包含这个头文件确实是个好主意,因为有了它所包含的原型,编译器可以更好地为你的程序执行错误检查。

28.标准库函数有时是用汇编语言实现的,目的就是为了充分利用某些机器所提供的特殊字符串操作指令,从而追求最大限度的速度,即使在没有这类指令的机器上,你最好还是把更多的时间花在程序其他部分的算法改进上。寻找一种更好的算法比改良一种差劲的算法更有效率,复用已经存在的软件比重新开发一个更有效率。

提醒:《【博客大赛】《C和指针》摘抄整理型笔记三》最后刷新时间 2024-03-14 01:04:13,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《【博客大赛】《C和指针》摘抄整理型笔记三》该内容的真实性请自行鉴别。