C语言系列4——指针与数组(1)

我们开始C语言的指针与数组

这部分开始进阶了,得反复学习


在开始正题之前,写说一下我们都知道当写一个函数的时候需要进行传参,当实参传递给形参的时候,形参是有独立空间的,那么数组传参又是怎么样的呢,我们来进入今天的话题

一、一维数组与指针

首先有这么几行代码

cpp 复制代码
#include <stdio.h>
int main() {
	int a[3] = { 0 };
	printf("%p\n", &a);
	printf("%p\n", a);
	printf("%p\n", &a[0]);
	return 0;
}

我们发现它们结果是一样的,但是我们要注意, printf("%p\n",&a); 打印的其实是整个数组的地址,而剩下两个则打印数组首元素的地址

你就想嘛,&a 取的是整个数组,而一个 a 默认就是首元素的地址了,此时我们加一,打印的第一条语句应该比剩下两条语句多8,因为会跳 3*4个字节,而其它两条语句则只跳过4个字节,那我们来对比一下~

我们发现,结果如我们所料

二、二维数组与指针

那么二维数组又是怎样的呢

其实二维数组就相当于它的第一行就是首元素,数组名是首元素也就是第一行的地址

这里用图片给大家展示一下

大家下来可以试试用二维数组传参


就先到这里

加油

相关推荐
Kalika0-07 分钟前
素数判断-C语言
c语言·算法
程序员如山石11 分钟前
Qt的互斥量用法
开发语言·qt
终末圆20 分钟前
MyBatis—Plus 快速上手【后端 22】
java·开发语言·数据库·后端·sql·spring·mybatis
岁岁岁平安30 分钟前
springboot实战学习(10)(ThreadLoacl优化获取用户详细信息接口)(重写拦截器afterCompletion()方法)
java·spring boot·后端·学习·threadlocal·jwt令牌
fareast_mzh34 分钟前
eMule allows you to optimize your queue and sharing efficiency
java·开发语言·数据库
发奋图强强强37 分钟前
10/1 力扣 49.字母异位词分组
算法·leetcode·职场和发展
牵牛老人43 分钟前
Qt开发技巧(九)去掉切换按钮,直接传样式文件,字体设置,QImage超强,巧用Qt的全局对象,信号槽断连,低量数据就用sqlite
开发语言·qt·sqlite
聆听HJ1 小时前
java 解析excel (本地资源)
java·开发语言·excel
不拱地的猪1 小时前
想知道为什么有DICOM格式,YAML格式,XML格式,JSON格式吗?
xml·java·c++·opencv·json
yi碗汤园1 小时前
【一文读懂】C#如何实现通用的排序功能
开发语言·数据结构·算法·c#