网站首页
分类导航
试题中心
下载中心
英语学习
缤纷校园
考试论坛
网站留言
客服中心
计算机
:
等级考试
水平考试
微软认证
思科认证
Oracle认证
Linux认证
外语类:
四 六 级
商务英语
公共英语
GRE
GMAT
托 福
雅 思
资格类:
公 务 员
报 关 员
司法考试
导游考试
会计职称
注册会计师
学历类:
考研入学
自学考试
成人高考
法律硕士
MBA/MPA
网络课堂
等级考试
水平考试
微软认证
思科认证
Oracle认证
Linux认证
考试动态
|
报考指南
|
考试大纲
|
历年真题
|
模拟试题
|
复习资料
|
心得技巧
|
考试论坛
您现在的位置:
考试吧(Exam8.com)
>>
计算机等级考试
>>
复习资料
>> 文章正文
登录
|
注册
|
升级VIP
马上加入考试吧VIP
博客个性域名免费抢注
特别推荐
最新热点
·
2006年9月23日计算机等级
·
2006年9月计算等级考试上
·
2006年9月23日全国计算机
·
2006年9月全国计算机等级
·
考试吧:2006年9月全国计
·
06年9月计算机二级公共基
·
2006年4月计算机等级考试
·
2006年全国计算机等级考
·
2006年全国计算机等级考
·
2006年4月计算机等级考试
·
2005年NCRE考试各级别的
·
2004年版南开C语言100题
·
2004年版南开C语言上机1
·
阅卷教师谈等级考试
更多>>
最新推荐
·
2004年版南开C语言100题
·
阅卷教师谈等级考试
·
2006年9月计算机等级考试
·
2006年计算机等级考试二
·
2006年下半年计算机等级
·
2006年4月计算机等级考试
·
全国计算机等级考试承办
·
05年9月计算机等级考试成
·
05年9月等级考试二级C语
·
9月各地计算机等级考试报
·
2005年4月全国计算机等级
·
2005年4月计算机等级考试
·
2005年4月计算机等级考试
·
2005年4月2日二级VFP标准
更多>>
2006年精品辅导课程
C语言笔记 第一章 指针的概念
【字体:
大
小
】
C语言笔记 第一章 指针的概念
http://www.exam8.com
来源:考试吧(Exam8.com) 点击: 更新:2004-8-16
第一章 指针的概念
指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。
要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的
类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让
我们分别说明。
先声明几个指针放着做例子:
例一:
(1)int *ptr;
(2)char *ptr;
(3)int **ptr;
(4)int (*ptr)[3];
(5)int *(*ptr)[4];
如果看不懂后几个例子的话,请参阅我前段时间贴出的文章<<如何理解c和c
++的复杂类型声明>>。
1。 指针的类型。
从语法的角度看,你只要把指针声明语句里的指针名字去掉,剩下的部分就
是这个指针的类型。这是指针本身所具有的类型。让我们看看例一中各个指针的
类型:
(1)int *ptr; //指针的类型是int *
(2)char *ptr; //指针的类型是char *
(3)int **ptr; //指针的类型是 int **
(4)int (*ptr)[3]; //指针的类型是 int(*)[3]
(5)int *(*ptr)[4]; //指针的类型是 int *(*)[4]
怎么样?找出指针的类型的方法是不是很简单?
2。指针所指向的类型。
当你通过指针来访问指针所指向的内存区时,指针所指向的类型决定了编译
器将把那片内存区里的内容当做什么来看待。
从语法上看,你只须把指针声明语句中的指针名字和名字左边的指针声明符
*去掉,剩下的就是指针所指向的类型。例如:
(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越
来越熟悉时,你会发现,把与指针搅和在一起的“类型”这个概念分成“指针的
类型”和“指针所指向的类型”两个概念,是精通指针的关键点之一。我看了不
少书,发现有些写得差的书中,就把指针的这两个概念搅在一起了,所以看起书
来前后矛盾,越看越糊涂。
3。 指针的值,或者叫指针所指向的内存区或地址。
指针的值是指针本身存储的数值,这个值将被编译器当作一个地址,而不是
一个一般的数值。在32位程序里,所有类型的指针的值都是一个32位整数,因为
32位程序里内存地址全都是32位长。
指针所指向的内存区就是从指针的值所代表的那个内存地址开始,长度为si
zeof(指针所指向的类型)的一片内存区。以后,我们说一个指针的值是XX,就相
当于说该指针指向了以XX为首地址的一片内存区域;我们说一个指针指向了某块
内存区域,就相当于说该指针的值是这块内存区域的首地址。
指针所指向的内存区和指针所指向的类型是两个完全不同的概念。在例一中
,指针所指向的类型已经有了,但由于指针还未初始化,所以它所指向的内存区
是不存在的,或者说是无意义的。
以后,每遇到一个指针,都应该问问:这个指针的类型是什么?指针指向的
类型是什么?该指针指向了哪里?
4。 指针本身所占据的内存区。
指针本身占了多大的内存?你只要用函数sizeof(指针的类型)测一下就知道
了。在32位平台里,指针本身占据了4个字节的长度。
指针本身占据的内存这个概念在判断一个指针表达式是否是左值时很有用。
文章录入:萧雨 责任编辑:萧雨
上一篇文章:
C语言笔记 第二章 指针的算术运算
下一篇文章:
三级网络技术复习笔记(第5-7章)
【
发表评论
】【
加入收藏
】【
告诉好友
】【
打印此文
】【
关闭窗口
】
相关文章
2006年9月23日计算机二级VF上机操作试题汇总
2006计算机等级考试三级网络上机模拟题及详
2006计算机等级考试三级网络上机模拟题及详
2006计算机等级考试三级网络上机模拟题及详
2006计算机等级考试二级VB上机模拟题及详解
2006计算机等级考试二级VF上机模拟题及详解
2006计算机等级考试二级VF上机模拟题及详解
2006计算机等级考试二级VF上机模拟题及详解
2006计算机等级考试二级VF上机模拟题及详解
2006计算机等级考试二级VF上机模拟题及详解
全国计算机等级考试二级Access考点分析之宏
全国计算机等级考试二级Access考点分析之数
版权声明
如果本网站所转载内容不慎侵犯了您的权益,请与我们联系
,我们将会及时处理。如转载本网内容,请注明出处。
发表评论
关于本站
网站声明
广告服务
联系方式
付款方式
站内导航
客服中心
友情链接
Copyright © 2004-2006
考试吧
(
Exam8.com
) All Rights Reserved
中国科学院研究生院中关村园区(北京市海淀区)