Chinaunix首页 | 论坛 | 博客
  • 博客访问: 735205
  • 博文数量: 769
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 4985
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-15 16:37
文章分类

全部博文(769)

文章存档

2011年(1)

2008年(768)

我的朋友

分类:

2008-10-15 16:39:32

  为初学者服务。这是本文的宗旨。指针是c和c++中的难点和重点。有些程序员们精通dos下的basic.c语言的其它各种特性,在basic中都有类似的东西。只有指针,是baisc所不具备的。指针是c的灵魂。
 
  我不想重复大多数书上说得很清楚的东西,我只是把我看过的书中说得不清楚或没有说,而我又觉得我理解得有点道理的东西写出来。
 
  1、指针的概念
 
  指针是一个特殊的变量,它里面的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。
 
  先声明几个指针放着做例子:
 
  例一:
 
 (1)int*ptr;
(2)char*ptr;
(3)int**ptr;
(4)int(*ptr)[3];
(5)int*(*ptr)[4];

  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]      

【责编:huangchunmei】

--------------------next---------------------

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