随笔-159  评论-114  文章-7  trackbacks-0
指针一个种特殊的变量,用来存放其他变量的地址。

定义一个变量,就会分配内存,就会开空间,有地址,地址与变量的值无关系。变量地址不会改变。

int theVariable = 5;
int *pPointer = &theVariable;

那么寻找变量:
1.通过变量名,可以访问变量。
2.通过地址,可以找到变量。(地址唯一,不变)

指针只保存地址。

一个变量的地址是有意义的,可以进行运算(+/-数字,相减,比较)。

指针就是一个用来保存地址的特殊变量。

=================================

由于地址有类型,所以指针也有类型。(不信?只知道地址,如果不知道类型,取几个字节无从获知)。

int类型的地址就是四个字节。

所以一定要明确  地址需要赋予一个类型的概念。

int i = 5;

取地址符号,会取得有类型的地址,&i(整型变量的地址)

char ch = 'A';

&ch,就是字符类型的地址

int *p = &i;

这个语句的含义:定义一个类型是int的指针变量p,并将i的地址给p,p只存储了地址。

指针类型必须与地址类型一致。

指针的类型由它所指向的存储空间的内容的类型来确定,什么类型的变量,就用什么类型指针。

任何数据类型,都有指针。

指针是用来保存变量的地址,所以int *p = 2000; 不可以!!

指针+1一定是找到下一个变量。有类型信息进而找到下一个同类型的变量。

int i = 100;
int *p = &i;
char ch = 'a';
p = &ch;

错!指针类型严格匹配。

可以给指针赋一个NULL,NULL表示内存0号单元,起始位置。不可以读,也不可以写。禁止访问。
试图访问,段错误。

在使用指针之前,

===========================

char *p = "hello";//存于常量区,不可以修改
"hello"一个字符串,也就是一个字符数组,p的地址就是这个字符数组第一个元素的地址:一个char类型的地址。
p[0] 就是'h'。

===========================



posted on 2005-12-28 00:27 北国狼人的BloG 阅读(343) 评论(0)  编辑  收藏 所属分类: 达内学习总结

只有注册用户登录后才能发表评论。


网站导航: