数组作为函数参数传递

article/2025/9/14 21:13:18

数组作为函数参数传递
数组作为函数参数传递时,传入的是数组首地址,并非数组本身。今天总算理解了这一点。写了一个打印数组元素的函数,代码如下:

void print1(int arr[]) {int len = sizeof(arr) / sizeof(arr[0]);cout << sizeof(arr)<<endl;for (int i = 0;i < len;i++) {cout << arr[i] << " ";}
}

main函数:

int arr[5] = { 1,2,3,4,5 };print1(arr);

运行结果:在这里插入图片描述
显然,并没有打印出数组所有元素。根据输出,sizeof(arr)=4;
sizeof(arr)/sizeof(arr[0])=1。很明显,如果传入的是数组本身,sizeof(arr)的值一定远大于4。传入的是地址的话,则刚好是4个字节。
再看我写的第二个打印函数:

void print2(int arr[], int len) {for (int i = 0;i < len;i++) {cout << arr[i] << " ";}
}

main函数

int arr[5] = { 1,2,3,4,5 };int len = sizeof(arr) / sizeof(arr[0]);cout << "数组长度:"<<len<<"   数组所占空间:"<< sizeof(arr)<<endl;print2(arr, len);

运行结果:
在这里插入图片描述
结果准确无误。
总结:当数组作为函数参数传递时,不能在函数中用sizeof求数组长度。


http://chatgpt.dhexx.cn/article/MpjuhnKj.shtml

相关文章

C++之数组作为函数参数

好消息&#xff0c;好消息&#xff0c;数组也可当参数啦&#xff01;&#xff01;&#xff01; 长这样&#xff0c; void arr(int a[])还挺好看&#xff08;生平第一次夸代码/狗头/&#xff09; 众所周知&#xff0c;变量可以当参数&#xff0c;但是数组当参数的话只能被认为…

C语言 数组作为函数参数

1、数组元素作为函数实参 int a[10]; //相当于定义了10个变量&#xff0c;a[0]~a[9]&#xff0c;那么数组元素就是&#xff1a;a[0]~a[9]&#xff0c;数组元素就可以当成变量使用。 #include<stdio.h> //函数声明 int whichmax(int x,int y); int main() {int a[10];a[1…

数组元素作为函数参数

数组元素作为函数参数 数组元素作为函数参数数组元素作函数实参数组名作为函数参数 数组元素作为函数参数 数组可以作为函数的参数使用&#xff0c;进行数据传送。数组用作函数参数有两种形式&#xff0c;一种是把数组元素(下标变量)作为实参使用&#xff1b;另一种是把数组名…

将数组作为函数参数调用

数组与单个元素一样&#xff0c;也可以作为参数被函数调用&#xff0c;但其用法与单个元素调用存在不同。 对于单个元素调用&#xff0c;如不使用引用&或者指针&#xff0c;则在函数中对形参的操作不会反映到实参上&#xff0c;即实参不会发生改变&#xff0c;具体用法详见…

零基础入门学习C语言008讲:函数(4)

8.&#xff17;数组作为函数参数 数组可以作为函数的参数使用&#xff0c;进行数据传送。数组用作函数参数有两种形式。 一种是把数组元素(下标变量)作为实参使用&#xff1b; 另一种是把数组名作为函数的形参和实参使用。 8.7.1 数组元素作函数实参 数组元素就是下标变量…

数组做函数的参数

&#xff11; 一维数组做参数 数组作为函数的参数&#xff0c;是指以数组名作为实际参数传递给函数。用数组名做函数参数时&#xff0c;不是进行直接的值传递&#xff0c;而是地址的传送&#xff0c;也就是把实参数组的首地址赋予形参数组名。 比如&#xff0c;下面声明了一个…

顺序表的基本操作代码实现

顺序的基本操作代码实现&#xff08;初始化、插入、删除、销毁等等&#xff09; 1.标头.h #pragma once #include<stdio.h> #include<stdlib.h> /*author:W.yuData:2020-04-27 */#define INITSIZE 10 //定义顺序表的初始最大长度typedef struct {int* data; //顺…

数据结构实验报告:顺序表基本操作的实现

1、实验目的 &#xff08;1&#xff09;领会线性表顺序存储结构的特点。 &#xff08;2&#xff09;掌握线性表顺序存储结构的常见算法。 2、实验具体要求 &#xff08;1&#xff09;建立顺序表存储数据序列&#xff08;10&#xff0c;20&#xff0c;30&#xff0c;40&…

顺序表基本操作的实现

实验一 顺序表基本操作的实现 一、实验学时&#xff1a; 2学时 二、实验目的 实现顺序表的基本操作 三、实验内容 顺序表的建立、取指定元素、返回指定元素位置顺序表中插入新元素、删除指定元素操作的实现 四、主要仪器设备及耗材 硬件&#xff1a;计算机一台软件&…

数据结构学习笔记——顺序表的基本操作(超详细最终版+++)建议反复看看ヾ(≧▽≦*)o

目录 前言一、顺序表的相关知识点二、顺序表的定义三、顺序表的初始化四、顺序表的建立五、顺序表的输出六、顺序表的逆序输出七、顺序表的插入操作八、顺序表的删除操作九、顺序表的按位和按值查找基本操作的完整代码十*、顺序表删除的常用操作十一*、顺序表的常用合并操作 前…

数据结构:顺序表的基本操作

线性表的顺序存储顺序表的线性存储示意图C语言定义线性表的顺序存储结构顺序表的基本操作顺序表的基础操作完整代码 线性表的顺序存储 线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素&#xff0c;使得线性表在逻辑结构上相邻的元素存储在连续的物…

顺序表的基本操作(C语言)

1.要求 编程实现顺序表的基本操作&#xff0c;并设计一个菜单调用。 ①建立&#xff08;初始化&#xff09;、遍历、取值、查找、插入、删除 ②判空、求元素个数、前驱、后继、置为空表、销毁 2.分析 我们需要去定义一个结构体&#xff08;以下代码的结构体名为SqList),其…

C语言实现顺序表基本操作

1.顺序表初始化 2.顺序表创建 3.求顺序表的长度 4.判断顺序表是否为空 5.向顺序表中插入元素 6.删除顺序表中元素 7.将顺序表翻转 8.将顺序表降序排序 #include<stdio.h> #define MAXSIZE 100//定义顺序表的最大存储个数 typedef struct SqList {int *base;int l…

顺序表基本操作

文章目录 1. 顺序表插入元素2. 顺序表删除元素3. 顺序表查找元素4. 顺序表更改元素 1. 顺序表插入元素 向顺序表中插入数据元素&#xff0c;根据插入位置的不同&#xff0c;可分为以下 3 种情况&#xff1a; 插入到顺序表的表头&#xff1b;在表的中间位置插入元素&#xff1…

顺序表的基本操作

一、实验目的&#xff1a; 1、复习C语言程序设计中的知识。 2、掌握线性表的顺序存储结构的表示和实现方法。 3、掌握顺序表基本操作的算法实现。 二、实验内容&#xff1a; 1&#xff0e;建立顺序表。 2&#xff0e;在顺序表上实现插入、删除和查找等操作。 三、实验要求…

数据结构-顺序表基本操作的实现(含全部代码)

今天起开始编写数据结构中的各种数据结构及其算法的实现。 主要依据严蔚敏版数据结构教材以及王道数据结构考研辅导书。 今天是线性表中的顺序表的实现&#xff0c;主要实现函数如下&#xff0c;读者有需要可以评论&#xff0c;我可以适当加几个。 CreateList(SqList &L…

PTA题目:顺序表基本操作

实现顺序表的基本操作&#xff0c;如初始化、插入、删除、输出等。 注意&#xff1a;顺序表中可有重复元素值。 要求&#xff1a;写出三个基本操作函数ListInsert&#xff0c;ListDelete&#xff0c;ListDeleteElem。 顺序表结构与操作函数接口定义&#xff1a; typedef char…

顺序表的操作,你真的学会了吗?

&#x1f30d;新人小白的博客 ⌛️希望大家多多关注 &#x1f383;以后会经常更新哒~&#x1f648; ⭐️个人主页&#xff1a; 收藏加关注&#xff0c;永远不迷路~ ⭐️ 顺序表的操作 前言一、目的二、步骤1.定义存储表示2. 定义操作函数3.采用菜单样式让操作更加方便清楚。4. …

数据结构——顺序表的基本操作

目录 1.顺序表的定义 2.define和typedef 3.以下所有用到函数的声明 4.建表&#xff0c;为表开放空间 5.建表&#xff0c;并且输入表内的值 6.在L中第i个位置之前查人新的数据元素e&#xff0c;L的长度加1 7.删除L的第i个数据元素&#xff0c;并用e返回其值&#xff0c;L的…

顺序表基本操作算法——基础代码(C语言)

创建一个顺序表&#xff08;数据元素个数为5&#xff09;&#xff0c; 输出顺序表中的所有数据元素 查找第3个位置上的元素 查找元素15是否在顺序表中&#xff0c;如果在&#xff0c;请输出该元素在顺序表中的位置 在顺序表中的第1个位置插入数据0 删除刚刚插入的元素 输出顺序…