黑马程序员技术交流社区

标题: 关于指针的理解 [打印本页]

作者: 初见兔儿哥    时间: 2015-8-6 21:48
标题: 关于指针的理解
1.概念问题:指针是指存放地址值的变量或常量;指针与一般变量或常量的区别,在于它不直接存储数值,而是存放被存储数值的地址,属于间接存放,所以不少初学者感觉学习困难。
比如:int a=2,b,c,*ptr;     ptr=&a;表示将指针ptr指向变量a,存放a的地址,假设是2000H,而指针变量ptr本身也要有地址,假设是3000H,明显 ptr和&ptr是不相等的,千万不要搞混。常见用法:ptr=&a;      指针ptr指向变量a  
b=*ptr;              将ptr所指内容存入b,b=a
c=&ptr;            将ptr地址存入c,c与&a或&b明显不同

2. *问题:*在指针部分有两种用法,一是定义指针变量,比如 char *p;二是表示取指针变量所指的内容,比如char ch,*p;  *p=ch;
&问题:&指取变量地址,比如 p=&ch;将指针指向ch,即p的值=ch变量的地址

3.指针与数组问题:数组的名字本身代表该数组的首地址,要区分地址与数值之间的关系,比如char c[10], *p;
(1)p=c;表示指针p指向数组c,相当于p=&c[0];c和&c[0]都是表示首地址
(2)c[0],c[1],...c[9]都是表示数组中每个具体变量的值,前面加&才是其地址,与指针相连时,一般是p=&c[1]形式,只有指向c[0]时,才能省略为p=c

作者: MoonLove    时间: 2015-8-7 09:44
不错,赞一个




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2