所在的位置: C++ >> C++前景 >> 学习C语言的第十七课

学习C语言的第十七课

北京中科医院好不好 http://m.39.net/baidianfeng/a_5153151.html

数组的学习就到此结束了,今天我们开始学习“指针”。我个人觉得数组和指针都挺难的,不知道大家觉得呢?好了,话不多说,现在就开始今天的课程!下面是我的一些课堂笔记,希望对大家的学习有所帮助哦!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);(*是取内容,是取地址)

编程


转载请注明:http://www.aierlanlan.com/cyrz/4959.html

  • 上一篇文章:
  •   
  • 下一篇文章: