09 指针

本文介绍了C语言中的指针概念,包括指针如何作为变量存储地址、如何通过指针扩展存储单元的使用范围,以及指针在数组和函数调用中的应用。讨论了数组变量实际上存储的是首元素地址,以及如何通过间接引用访问数组元素。同时,提到了指向函数的指针,强调了指针在形参传递中的重要作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

scanf函数可以给作用域不包含其函数体内的变量赋值,数组作实参时不加取地址操作符&,改变形参数组的数组元素就是改变实参数组的数组元素,这些都与指针有关。

程序中借助变量使用存储单元,而计算机中用地址标识存储单元。指针就是存储单元的地址,即存储单元的编号。指针变量就是存储了地址的变量。由指针变量得到地址,再借助地址就可以使用该地址标识的存储单元。通过指针变量使用其存储的地址的存储单元的方式称为“间接引用”。直接通过变量使用其标识的存储单元的方式称为“直接引用”。直接引用整型变量可以得到一个整数,直接引用指针变量可以得到一个地址。

以直接引用的方式使用存储单元受限于变量的作用域,但只要由指针变量得到地址,就可以在程序中的任何地方使用该地址标识的存储单元。指针扩展了存储单元的使用范围。得到地址的目的是使用存储单元,因此,遇到值为地址的变量或表达式,与地址的具体值相比,更关心它是哪个存储单元的地址。与钥匙的形状相比,更关心它是哪个箱子的钥匙。

数组标识了内存中地址连续的一组存储单元,只要确定首元素的地址,就能通过地址运算方便地确定任一个数组元素的地址。数组变量的值规定为其首元素的地址。数组元素以间接引用的方式使用,即表达式a[i]会转化为表达式(*(a+i))。二维数组的结构稍显复杂,在堆空间定义一个m行n列的二维数组有一定的难度。

指针变量存储的地址是指针类型存储单元时,就有指向指针类型的指针。函数也需存储&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值