考试网 >> IT认证 >> 水平 >> 软件指导 >> 深入理解C语言指针

深入理解C语言指针

发布时间:2006-06-28 05:35     点击:
分页:[1] 2  下一页

指针的概念

指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。

先声明几个指针做例子:

例一:

(1)int*ptr; 

(2)char*ptr; 

(3)int**ptr; 

(4)int(*ptr)[3]; 

(5)int*(*ptr)[4];

 

指针的类型 

从语法的角度看,你只要把指针声明语句里的指针名字去掉,剩下的部分就是这个指针的类型。这是指针本身所具有的类型。让我们看看例一中各个指针的类型: 

(1)int*ptr;

//指针的类型是int* 

(2)char*ptr;

//指针的类型是char* 

(3)int**ptr;

//指针的类型是int** 

(4)int(*ptr)[3];

//指针的类型是int(*)[3] 

(5)int*(*ptr)[4];

//指针的类型是int*(*)[4]

 

怎么样?找出指针的类型的方法是不是很简单? 

指针所指向的类型 

当你通过指针来访问指针所指向的内存区时,指针所指向的类型决定了编译器将把那片内存区里的内容当做什么来看待。 

从语法上看,你只须把指针声明语句中的指针名字和名字左边的指针声明符*去掉,剩下的就是指针所指向的类型。例如: 

(1)int*ptr;

//指针所指向的类型是int 

(2)char*ptr;

//指针所指向的的类型是char 

(3)int**ptr;

//指针所指向的的类型是int* 

(4)int(*ptr)[3];

//指针所指向的的类型是int()[3] 

(5)int*(*ptr)[4];

//指针所指向的的类型是int*()[4]

 

在指针的算术运算中,指针所指向的类型有很大的作用。 

指针的类型(即指针本身的类型)和指针所指向的类型是两个概念。当你对C越来越熟悉时,你会发现,把与指针搅和在一起的"类型"这个概念分成"指针的类型"和"指针所指向的类型"两个概念,是精通指针的关键点之一。 
分页:[1] 2  下一页
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有