第五十七集 数组名

本文介绍了C语言中一维数组的指针操作,包括数组名的含义,指针加1的实际效果,以及如何处理二维数组作为一维数组看待的情况。强调了指针类型匹配和避免越界访问的重要性。
摘要由CSDN通过智能技术生成

1.第一个知识点 

一维数组的数组名的理解 

(1)在 C 语言中, arr+1  表示将  arr  的值增加  1 。由于  arr  是存储数组首地址的变量,所以  arr+1  实际上是指数组中下一个元素的地址。

当你对一个指针进行加法运算时,它会根据指针的数据类型进行相应的地址偏移。对于数组指针,增加  1  意味着跳过一个元素的大小。

例如,如果  arr  是一个整数数组的首地址,并且整数占用  4  个字节,那么  arr+1  将指向数组中的下一个整数。

需要注意的是,对指针进行加法运算并不意味着访问到了实际的元素值,而是得到了指向后续元素的地址。要访问具体的元素,通常需要使用指针间接寻址的方式,例如  *arr  表示访问指针  arr  所指向的元素。

此外,在使用指针进行数组操作时,要确保指针的类型与数组元素的类型相匹配,并注意越界访问的问题,以避免出现未定义的行为或错误。

以下是一个示例代码:

#include <stdio.h>

int main() {
int arr[] = {10, 20, 30, 40, 50};
int *ptr = arr;

// 输出第一个元素
printf("Element at %p: %d\n", ptr, *ptr);

// 移动指针到下一个元素
ptr++;

// 输出第二个元素
printf("Element at %p: %d\n", ptr, *ptr);

return 0;
}

(2)课上内容部分 

2.第二个知识点

(1)此时需将二维数组看成一维数组的数组,此时的首元素不是数组中的一个元素,而是二维数组中第一行的所有元素,其二维数组的数组名表示第一行数组的地址

注意:虽然第一行数组的地址和第一个元素的地址看起来一样,但意义不同。比如,如果是第一个元素的地址,那么此时arr+1就指的是下一个元素的地址;如果是第一组的元素的地址,那此时arr+1就指的是下一组元素的地址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值