声明:本篇文章只是个人知识盲区、知识弱点、重点部分的归纳总结,望各位大佬不喜勿喷。梳理顺序是按照书籍的实际顺序梳理,转载请注明出处。

作者:sumjess


适用:这本书我已经看过4遍了,但是该书的知识点我并不是都常用,所以总会有忘记的,所以来写这本书的随手笔记,记录重点、易忘点。该博客可以当做字典,也可以当做你的笔记。

目前内容:第十章总结

第十章:数组和指针

 

1、数组:

    (1)数组由数据类型相同的一系列元素组成。

    (2)初始化数组:

            ① 数组通常被用来储存程序需要的数据。

            ② 只储存单个值的变量有时也称为标量变量。

            ③ int
text[4]={1,2,3,4};用以逗号分隔的值得列表(用花括号括起来)来初始化数组,各值之间用逗号分隔。在逗号和值之间可以使用空格。

            ④ 使用const声明数组:有时需要把数组设置为只读。这样修改后,程序在运行中就不能修改该数组中的内容。

            ⑤ 如果部分初始化数组,剩余的元素就会被初始化为0,如果初始化列表的项数多于数组元素个数,编译器会视为错误。

            ⑥ 可省略方括号中的数字,让编译器自动匹配数组大小和初始化列表中的项数。

            ⑦ sizeof text[0]是数组中一个元素大小(以字节为单位),sizeof text是整个数组大小(以字节为单位)。



 

    (3)指定初始化器(C99):

            ① 可以在初始化列表中使用带方括号的下标指明待初始化的元素。例如:int text[6]={[4]=3};

            ② 两个重要特性:


                 第一:如果指定初始化器后面有更多的值,[4]=1,2,3,在text[4]被初始化1后,text[5]和text[6]将分别被初始化了2,3。

                 第二:如果再次初始化指定的元素,那么最后的初始化将会取代之前的初始化。

            ③ 编译器会把数组的大小设置为足够装的下初始化的值。

 

    (4)给数组元素赋值:

            声明数组后,可以借助数组下标(或索引)给数组元素赋值;

2、多维数组:

 初始化二维数组:初始化二维数组是建立在初始化一维数组的基础上的。

3、指针和数组:

 

        指针提供一种以符号形式使用地址的方法;



注意   谢谢这位大佬指正







■指针的值是它所指向对象的地址;

■在指针前面使用运算符可以得到该指针所指向对象的值;

■指针加1,指针的值递增它所指向类型的大小(以字节为单位)。
dates + 2==&date[2] //相同的地址 *(dates + 2)==dates[2] //相同的值

可以使用指针标识数组的元素和获得元素的值。从本质上看,同一个对象有两种表示方法。实际上,C语言标准在描述数组表示法时确实借助了指针。也就是说,定义ar[n]的意思是*(ar
+
n)的意思是“到内存的ar位置,然后移动n个单元,定义ar[n]的意思是*(ar+n).可以认为*(ar+n)的意思是“到内存的ar位置,然后移动n个单元,检索储存在那里的值”。

4、函数、指针和数组:



解释:



注意:

① 只有在函数原型或函数定义头中,才可以用int ar[]代替int *ar;

② int ar[]指针ar指向的不仅仅是一个int类型值,还是一个int类型数组的元素;

 

 

 

 

 

 

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信