C语身教程第六章:指针(8)


本章小结
1. 指针是C语言中一个重要的构成部门,哄骗指针编程有以下优点:
(1)提高轨范的编译遵从和执行速度。
(2)经过议定指针可哄骗主调函数和被调函数之间共享变量或数据布局,便于完成双向数据通讯。
(3)可以完成静态的存储分拨。
(4)便于吐露显露各类数据布局,编写高质量的轨范。

2. 指针的运算
(1)取地点运算符&:求变量的地点
(2)取内容运算符*:吐露显露指针所指的变量
(3)赋值运算
·把变量地点赋予指针变量
·同典范榜样指针变量相互赋值
·把数组,字符串的首地点赋予指针变量
·把函数出口地点赋予指针变量
(4)加减运算
对指向数组,字符串的指针变量可以遏制加减运算,如p n,p-n,p ,p--等。对指向同一数组的两个指针变量可以相减。对指向别的典范榜样的指针变量作加减运算是偶然义的。
(5)干系运算
指向同一数组的两个指针变量之间可以遏制大于、小于、 即是比力运算。指针可与0比力,p==0吐露显露p为空指针。

3. 与指针有关的各类分析');和意义见下表。
int *p;     p为指向整型量的指针变量
int *p[n];   p为指针数组,由n个指向整型量的指针元素构成。
int (*p)[n];  p为指向整型二维数组的指针变量,二维数组的列数为n
int *p()    p为前往指针值的函数,该指针指向整型量
int (*p)()   p为指向函数的指针,该函数前往整型量
int **p     p为一个指向另一指针的指针变量,该指针指向一个整型量。

4. 有关指针的分析');良多是由指针,数组,函数分析');组合而成的。
但并不是可以肆意组合,比方数组不克不及由函数构成,即数组元素不克不及是一个函数;函数也不克不及前往一个数组或前往另一个函数。比方
int a[5]();便是错误的。

5. 关于括号
在评释组合分析');符时, 标识符右边的方括号和圆括号优先于标识符右边的“*”号,而方括号和圆括号以相反的优先级从左到右结合。但可以用圆括号窜改商定的结合按次。

6. 阅读组合分析');符的轨则是“从里向外”。
从标识符起头,先看它右边有有方括号或园括号,若有则先作出评释,再看右边有无*号。 假若在任何功夫碰到了闭括号,则在接连之前必须用相反的轨则处置括号内的内容。比方:
int*(*(*a)())[10]
↑ ↑↑↑↑↑↑
7 6 4 2 1 3 5
上面给出了由外向外的阅读按次,上面来评释它:
(1)标识符a被分析');为;
(2)一个指针变量,它指向;
(3)一个函数,它前往;
(4)一个指针,该指针指向;
(5)一个有10个元素的数组,其典范榜样为;
(6)指针型,它指向;
(7)int型数据。
因而a是一个函数指针变量,该函数前往的一个指针值又指向一个指针数组,该指针数组的元素指向整型量。



版权声明: 原创作品,答应转载,转载时请务必以超链接形式标明文章 原始理由 、作者信息和本声明。不然将深究功令责任。

转载于:https://www.cnblogs.com/zgqjymx/archive/2011/03/07/1975587.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值