指针一个种特殊的变量,用来存放其他变量的地址。
定义一个变量,就会分配内存,就会开空间,有地址,地址与变量的值无关系。变量地址不会改变。
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) 编辑 收藏 所属分类:
达内学习总结