用指针访问一维数组
数组里面所有的元素是连续的内存存放的,数组名是数组第一个字节的内存地址,并且数组名a也表示指针,在表达式可以被转换为和 p 等价的指针!a作为右值 并不表示a地址存储的内容, 而是数组首元素首地址
2025年07月10日
数组里面所有的元素是连续的内存存放的,数组名是数组第一个字节的内存地址,并且数组名a也表示指针,在表达式可以被转换为和 p 等价的指针!a作为右值 并不表示a地址存储的内容, 而是数组首元素首地址
2025年07月10日
当数组名作为参数传递的时候,需要一起传递数组的长度。因为,数组名作为参数传递之后,转换为指针。此时,通过sizeof关键字无法获取数组的长度,那么,在操作数据的时候,无法正确判断数组的长度,容易产生数组越界。
程序测试例子如下:
程序运行结果如下:
2025年07月10日
指针和数组是密切相关的。事实上,指针和数组在很多情况下是可以互换的。例如,一个指向数组开头的指针,可以通过使用指针的算术运算或数组索引来访问数组。今天我们就来聊一聊数组和指针千丝万缕的关系;
指针可以用来访问数组,也可以用来改变数组成员,这点与数组本身的下标运算符功能并无区别,请看下面程序演示:
int arr[4] = {520,1314,521,3344};
2025年07月10日
今天给大家带来指针问题的另一个案例。题目是:将一个已知数组中最大的数与第一个元素交换,最小的与最后一个元素交换,并输出数组。
关于数组指针,我们需要了解的是,a[3]={1,2,3};该数组的首地址就是a。定义一个指针int *p;通过p=a就可以将p指向数组首地址了。同时,元素a[0]的地址恰好与数组地址重合,即&a[0]与a正好是同一数值。有疑问的朋友可以通过小程序测试下。下面贴上程序代码,纯手动打造,请各位朋友指教。
2025年07月10日
原本在我看来,“指针数组”和“数组指针”是两个并不相近的知识点。因为前一个的“主体”是数组,后一个的“主体”是指针,主体都不同。
2025年07月10日
·详解数组指针与指针数组
·数组指针
一、区分
首先我们需要了解什么是数组指针以及什么是指针数组,如下图:
int *p[5];
int (*p)[5];