数组的学习就到此结束了,今天我们开始学习“指针”。我个人觉得数组和指针都挺难的,不知道大家觉得呢?好了,话不多说,现在就开始今天的课程!下面是我的一些课堂笔记,希望对大家的学习有所帮助哦!1、定义一级指针(指针保存的不是变量本身,而是变量的地址)
格式:类型名*变量名
例:定义两个指向整型变量的指针p1和p2
int*p1,*p2;
例:定义两个整型变量m和n及两个指针p和q,并使p和q分别指向m和n
intm,n,*p,*q;
p=m;表示p存放变量m的地址
q=n;表示q存放变量n的地址
例:定义一个包含10个数组的a和一个指针p,并使p指向a
Inga[10],*p;
p=a;表示p指向a的首地址,即a[0]的地址。或者p=a[0];
注意:p=a不能写成p=a,因为a本身就是地址。(在C语言中,数组名本身就是一个地址)
2、指针间的赋值
假设已有下列定义:
int*q,*p,k=0;
q=k;
例如:p=q表示两种间赋值,读作p指向q
此时p和q均指向变量k的地址
3、通过指针引用存储单元
例:假设已有下列定义
int*p,m,n=0;
p=n;
例:m=*p;表示将p指向存储单元内容给变量m(等价于m=n;)
注意:p本身表示一个指针,保存地址
*p表示指针所指向的地址中的内容
举实例:p是地址,打比方,存放的是房间的门牌号
*p是内容,打比方,存放的是房间里人的名字
4、指针的移动
当指针指向一片连续空间时,移动才有意义
假设已有下列定义:
inta[5],*p,*q,k;
p=a;
例如:q=p+2;表示将q指向元素a[2]的地址
P++;表示将p向后移一个单元
q--;表示将q向前移一个单元
k=p[2];等价于k=a[3];
k=p[2];可以写成k=*(p+2);(*是取内容,是取地址)
编程