【笔记】C与指针 第八章 数组

1.在C中,在几乎所有使用数组名的表达式中, 数组名的值是一个指针常量(所以不能更改),也就是数组第一个元素的地址,但是数组具有一些和指针完全不同的特征

2.在如下场合下,数组名并不用指针常量表示:

当数组名作为sizeof操作符或单目操作符&的操作数时

3.2[array]=array[2],通过理解下标的实现方式即可明白该表达式是正确的

4.下标和指针的效率问题,可以得出以下总结:

当你根据某个固定数目的增量在一个数组中移动时,使用指针变量将比使用下标产生效率更高的代码

声明为寄存器变量的指针通常比位于静态内存和堆栈中的指针效率更高

如果你可以通过测试一些已经初始化并经过调整的内容来判断循环是否应该终止,那么你就不需要使用一个单独的计数器

那些必须在运行时求值的表达式较之诸如&array[SIZE]或array+SIZE这样的常量表达式往往代价更高

5.关于printf()执行从右往左 如:

printf("%d %d\n",*++p,*p);先执行*p然后再执行*++p

6.matrix[3,4]=matrix[4],因为逗号操作符首先对第一个表达式求值,然后丢弃这个值,最后的结果是第二个表达式的值

7.如何声明指向数组的指针,并注意当多维数组名作为参数时,函数原型该如何写,常犯的错误 func(int **mat)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值