程序设计基石与实践之C语言指针Point
2013-04-20 09:50
288 查看
指针变量与指针变量的声明
理解指针的第一步是在机器级上观察指针表示的内容。大多数现代计算机都将内存分割为字节(byte),每个字节可以存储8位的信息。1 | 0 | 1 | 0 | 1 | 1 | 0 | 0 |
地址 | 内容 |
0 | 01110110 |
1 | 00110110 |
2 | 11110110 |
3 | 11101110 |
.... | ....... |
n-3 | 01110110 |
n-2 | 00010111 |
n-1 | 10010110 |
double * q; //points only to doubles
char *r ; //points only to characters至于引用类型是什么类型则没有限制。
取地址运算符和间接寻址运算符
为使用指针,C语言提供了一对特殊设计的运算符,为了找到变量的地址,可以使用&(取地址)运算符。如果x变量,那么&x就是x在内存中的地址。为了获得对指针所指向对象的访问,可以使用*(间接寻址)运算符。如果p是指针,那么*p表示p当前指向的对象。取地址运算符
声明指针变是为指针留出空间,但是并没有把它指向对象.int * p ; //points nowhere in particular在使用前初始化p是至关重要的。一种初始化指针变量的方法是使用&运算符把某个变量的地址赋给它.
int i, *p;
...
p = &i;
间接寻址运算符
一旦指针变量指向了对象,就是可以使用*运算符访向存储在对象中的内容。例如,如果p指向i,那么可以如下所示显示出i值:printf("%d\n", *p);
指针作为返回值
当给定指向两个整数的指针时,下列函数返回指向两整数中较大数的指针:int *max(int * a, int *b){
if(*a>*b) return a;
else return b;
}调用max函数时,用指向两个int类型变量的指针作为参数,并且把结果存储在一个指针变量中:
int *p, i, j;
..........
p= max(&i,&j);
关于程序设计基石与实践更多讨论与交流,敬请关注本博客和新浪微博songzi_tea.
相关文章推荐
- 程序设计基石与实践系列之能让你成为Top程序员的十个C语言资源
- 程序设计基石与实践之内存里C语言代码布局
- 程序设计基石与实践之C语言声明
- 程序设计基石与实践系列之最短的崩溃C语言程序
- C语言-第七章、用指针实现程序的灵活设计
- 程序设计基石与实践之熟悉类和对象
- 程序设计基石与实践之应用多态性的工资发放系统
- 程序设计基石与实践之实现数字七段显示与发扑克牌问题
- C语言及程序设计实践项目-递归和多文件组织
- 程序设计基石与实践之C语言指针和数组基础
- 程序设计基石与实践之C++异常处理
- 程序设计C语言-静态链表及指针
- 《C语言及程序设计》实践项目——分支结构程序设计体验
- 程序设计基石与实践之旋转方阵
- 程序设计基石与实践系列之写一个C语言编译器
- 程序设计基石与实践之C++语言接口与实现分离
- 用C语言设计光线成像程序(一)——计算机达人成长之路(26)
- 关于C程序中空指针(null指针)的设计哲学
- 《C语言及程序设计》程序阅读——二维数组与指针
- 程序设计C语言-递归(汉诺塔)