C语言 指针

指针是C语言中重要特性,它直接存储内存地址。指针变量可以用来直接访问或间接访问变量。指针有直接和间接访问两种形式,通过取地址符&和内容符*进行操作。指针与数组结合使用时,可以快速访问和遍历数组元素。在二维数组中,指针视为一维数组的指针。指针在处理字符串和作为函数参数时能提升效率。此外,还有指向指针的指针、指针数组和行指针等概念。
摘要由CSDN通过智能技术生成

指针

1 形式

直接访问:直接利用变量的地址进行存取。
间接访问:通过其他变量找到该变量的地址,进而访问该变量的值。

每个变量的地址是指该变量所占储存单元的第一个字节的地址。

2 指针变量

// 指针变量所占储存空间与其所指向的变量类型无关。
// 一般定义形式为。
// 类型说明符  *指针变量
int *a
int a=6,*x=&a   //初始化,指针x指向变量a
// 指针变量类型与所指向的变量类型相同
// x=NULL (空指针,对定义后暂不使用的指针变量赋空指针)

3 运算

取地址运算符:&
取内容运算符:*
两个为互逆运算符

4 指针与数组

4.1 一维数组

// 指针的移动指指针前后移动n个储存单元。
// 不同类型指针移动字节数不同(float型须移动4个字节,char型移动1个)
*p++ :等价于*(p++),先指向,p再加1
*++p:等价于*(++p),先加1,再指向
(*p)++:先指向,再指向的变量加1
++(*p):先指向的变量加1,再指向
// 指针相减表示相差的数组的元素个数。
// 可以用*(a+i)来访问数组元素,等价于a[i]
// p++会改变指针指向,p+1不改变,两者都是对指针进行加1运算。
// 指针的执行速度快。

4.2 二维数组

等价于一个一维数组,数组中的每一个元素都是一个一维数组。

5 指针与字符串

指针输出字符串是从指针指向的数组元素开始依次向后输出,直到遇到’\0’为止。
通常用 指针!=‘\0’ 来判断字符串结束的位置。

6 指针与函数

形参用指针可以提高程序的运行效率

指针型函数:

//格式:
类型说明符 *函数名(形参表)
{
	...  //函数体
}

调用函数的两种方法:

1  直接用函数名  hanshu(a,b)
2  通过函数指针  (*函数指针名)(实参表)

7 指向指针的指针

类型说明符 **指针变量名;

8 指针数组

类型说明符 *数组名[正整型常量表达式1],...[正整型常量表达式n];

9 行指针

类型说明符 (*指针变量名)[长度];
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值