C Primer Plus (第六版) 中文版 随手笔记(九)

本文详细介绍了C语言中的数组和指针概念,包括数组的初始化、指定初始化器、多维数组的初始化以及指针的基本操作等内容。此外,还讨论了函数、指针和数组之间的相互作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

作者: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类型数组的元素;

 

 

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值