Chinaunix首页 | 论坛 | 博客
  • 博客访问: 266345
  • 博文数量: 77
  • 博客积分: 210
  • 博客等级: 入伍新兵
  • 技术积分: 451
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-10 09:49
文章分类

全部博文(77)

文章存档

2012年(77)

分类:

2012-05-20 21:45:33

原文地址:C语言教程第六章:指针(8) 作者:sdccf


本章小结
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是一个变量,该返回的一个值又指向一个数组,该数组的元素指向整型量。

阅读(609) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~