指针概念综述

1.变量的地址就是变量的指针,用于存储地址的变量称为指针变量。当将一个变量的地址赋给某一个指针变量时,称这个指针变量指向该变量。此时,既可用变量名直接存取变量的值,也可用指针变量间接存取变量的值。

2.C语言中的数组变量、字符串数组变量、字符串、结构体变量、共用体变量、枚举型变量,甚至函数名及函数的形参以及文件等都用指针,可用定义相应额指针变量存放这些指针。同样有两种方法存放变量的值:用变量名直接存取或用指针变量间接存取。也有两种方法调用函数:用函数名来调用或用指向函数的指针变量来调用。

3.指针运算符“*”作用在变量的地址上,既表达式“*变量的地址”相当于间接存取该变量的值。

4.一维数组名是该数组的首地址(第一个元素的地址)。当指针变量p指向数组的某一个元素时,p+1指向下一个元素,p-1指向上一个元素。

5.字符串可以存放字符数组中,也能以字符串常量的形式出现在程序中。程序把一个字符串常量赋值给一个指针变量,实际上是把一个存放该字符串常量的内存单元首地址赋值给指针变量。

6.可以把C语言的二维数组a视为一个一维数组(a[0],a[1],a[2],···),而这个一维数组的每一个元素a[i]又是一个一维数组(a[i][0],a[i][1]····)。因此,&a[i][j],a[i]+j与*(a+i)+j三者相互等价,都是元素a[i][j]的地址。一个行指针变量pi指向的数据类型是一个有N个元素的一维数组,当pi指向二维数组的一行(设每行也有N个元素)时,pi+1指向下一行,pi-1指向上一行。

7.指针数组的每一个元素都是一个指针变量,指针数组的元素可用来指向变量、数组元素、字符串等。

8.指向指针的指针要进行二次“间接存取”(二级间址)才能存取变量的值。

9.通过指针变量存取结构体变量成员数据有两种方法:一种是通过指针运算符“*”,另一种是通过指向运算符“->"。指针变量存取共用体变量的数据也与之类似。

10.在C程序中使用指针编程,可以写出灵活、简练、高效的好程序,实现许多用其他高级语言难以实现的功能。

11.利用指针编程较易出错,而且这种错误是隐蔽的、难以发现的。比如,由于未对指针变量p赋值就对*p赋值,新值就代替内存中某单元的内容,可能出现不可预料的错误。因此使用指针编程,概念要清晰,并注意积累经验。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值