C和指针读书笔记-第8章(数组)

本文深入探讨了数组和指针的基本概念及应用技巧,包括数组名的特性、数组与指针的区别、数组初始化、多维数组的理解以及如何声明数组参数等内容。

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

1.数组名的值是一个指针常量,也就是数组第1个元素的地址,它的类型取决于数组元素的类型。记住是指针常量。

2数组具有确定数量的元素,指针只是一个标量值。只有当数组名在表达式中使用时,编译器才为它产生一个指针常量。

在程序完成链接之后,内存中数组的位置是固定的。

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

4.数组下标不会比指针更有效率,但指针有事会比下标更有效率。

5.形参被声明为一个指向const字符的指针。具有良好的阅读习惯,仅观察函数的原型就能发现该数据不会修改,编译器可以捕捉到试图修改该数据的错误,这类声明允许向函数传递const参数。

6.声明数组参数时最好使用指针。

7数组元素的不完整初始化,后面被初始化为0.

8.int vector【】={1.2.3.4.5};

可以自动计算数组长度。

9用''表示字符。

10“hello”当用于初始化一个字符数组时,它就是一个初始化列表,在其他地方,它都表示一个字符串常量。

11.声明一个指向整型数组的指针

int  (*p)[10];

下标优先级高于解引用,但是括号高于下标。所以先执行间接访问,p还是一个指针。但是指向什么?所以p是指向某种类型的数组。

对p执行间接访问操作得到的是个数组,对数组进行下标引用操作得到的是一个整型值。所以p是一个执行整型数组的指针。

12指针数组

int   *api[10]

先执行小标引用,因此api是某种类型的数组。然后执行间接访问操作,对数组的某个元素执行间接访问之后,是一个整形值。所以api肯定是一个数组。

元素类型是指向整形的指针。

13.

char const *keyword_table[]

keyword_table是一个数组。类型是执行char的指针。

其中keyword_talbe是指向这个数组的。

要想kwp=keyword_table

必须要这样定义  char const ** kwp,对kwp解引用之后,是一个只需向char型的指针。再次解引用之后是char类型。

 

12.多维数组a[3][8]相当于a【3】【】其中a【0】有8个,等等。


13.数组形参可以声明为数组,也可以声明为指针。这两种声明形式只有当他们作为函数的形参时才是相等的。

14.int   a【16】;

   int   *p

其中数组  的&a  和a  和&a[0]其实是一个意思



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值