指针数组如何赋值_深入理解C语言指针-2「转载」

本文介绍了C语言中指针与数组的关系,讲解了如何通过指针访问和操作数组元素。通过示例代码展示了如何定义指向数组的指针,并进行赋值和遍历操作,强调了在使用指针加整数操作时需要注意数组边界问题。

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

d1424feedd0d0d98dbdd7f0c6a8e86de.png

学的不仅仅是技术,更是梦想

三、指针与数组

之前我们可以通过下标访问数组元素,学习了指针之后,我们可以通过指针访问数组的元素。在数组中,数组名即为该数组的首地址,结合上面指针和整数的加减,我们就可以实现指针访问数组元素。

3.1、指向数组的指针

如以下语句:

 int nums[10], *p;

上面语句定义了一个数组 nums,在定义时分配了 10 个连续的int 内存空间。而一个数组的首地址即为数组名nums,或者第一个元素的首地址也是数组的首地址。那么有两种方式让指针变量 p 指向数组 nums:

//数组名即为数组的首地址 p = nums; //数组第一个元素的地址也是数组的首地址 p = &nums[0];

上面两句是等价的。

如下几个操作,用指针操作数组:

*p = 1,此操作为赋值操作,即将指针指向的存储空间赋值为 1。此时 p 指向数组 nums 的第一个元素,则此操作将 nums 第一个元素赋值为 0,即 nums[0] = 1。

p + 1,此操作为指针加整数操作,即向前移动一个单元。此时 p + 1 指向 nums[0]的下一个元素,即 nums[1]。通过p + 整数可以移动到想要操作的元素(此整数可以为负数)。

如上面,p(p + 0)指向 nums[0]、p + 1 指向 nums[1]、、、类推可得,p+i 指向 nums[i],由此可以准确操作指定位置的元素。

在 p + 整数的操作要考虑边界的问题,如一个数组长度为 2,p+3 的意义对于数组操作来说没有意义。

下面写一段代码,用指针访问数组的元素:

 //定义一个整形数组,并初始化 int nums[5] = {4, 5, 3, 2, 7}; //定义一个指针变量 p,将数组 nums 的首地址赋值给 p,也可以用&p = nums[0]赋值 int *p = nums, i; //i 作为循环变量 //p 指向数组第一个元素(数组首地址),我们可以直接用间接寻址符,获取第一个元素的内容 printf("nums[0] = %d
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值