一、数组做函数参数退化问题

数组做函数参数时,会退化为指针。

1、把数组的内存首地址和数组的有效长度传入函数。

2、实参数组和函数参数数组的数据类型不一样。形参中的数组,编译器会把它当做一个指针处理,这是C语音的特色

3、形参写在函数形参位置和写在函数内是一样的、

二、实验代码(排序)

#include

int sort(int a[], int num)

{

int tmp,i,j;

for (i = 0; i < num; i++)

{

for (j=i+1;j

{

if (a[i] > a[j])

{

tmp = a[i];

a[i] = a[j];

a[j] = tmp;

}

}

}

return 0;

}

int display(int a[], int num)

{

int i;

for (i=0;i

{

printf("%d ",a[i]);

}

printf("\n");

return 0;

}

int main()

{

int a[7] = {12,1,3,34,27,13,97};

int num;

num = sizeof(a) / sizeof(a[0]);

display(a,num);

sort(a,num);

display(a, num);

system("pause");

return 0;

}

这里函数参数传入的a只是main函数数组a的首地址,必须再传入数组的有效长度,才能正常使用。

C语言多维数组做函数参数会退化,数组做函数参数退化问题相关推荐

  1. C语言 二维数组做函数参数的几种情况

    (1)       实参为数组元素地址,虚参为元素类型指针 (a)       调用函数:fun(*a,3*4);  //*a也可为a[0] or &a[0][0] 函数: fun(int * ...

  2. C语言 二维数组作为函数参数的4种方式

    前言 多维数组中,二维数组是最常用的一种.在C语言编程中,二维数组的定义.取值以及赋值都比较容易,与一维数组类似.然而,在将二维数组作为函数参数传递时,参数结构较复杂,难以理解.本文章是实用型文章,注 ...

  3. C语言二维数组作为函数参数的使用

    c语言中经常需要通过函数传递二维数组,有三种方法可以实现,如下: 方法一, 形参给出第二维的长度. #include <stdio.h> void func(int n, char str ...

  4. C语言 | 二维数组作为函数参数

    1024G 嵌入式资源大放送!包括但不限于C/C++.单片机.Linux等.关注微信公众号[嵌入式大杂烩],回复1024,即可免费获取! 偶然间发现C语言二维数组作为函数的参数是个比较容易出错的问题. ...

  5. C语言学习笔记11-结构体(struct、结构作为函数参数、结构数组)、联合体/共用体typedef; union(大、小端序)

    C语言-结构类型 程序中的数据都需要有类型支撑,当数据很复杂时(不是简单的一个值,如时间信息:年月日时分秒6个数据需要作为一个整体),我们需要声明一个新的结构类型来描述这种复合的数据(可以包含很多不同 ...

  6. c语言程序设计歌手大奖赛,C语言二维数组怎么做:设计青年歌手参加歌曲大奖赛计分系统: 共...,怎样用c语言程序设计? 青年歌手参加歌曲大奖赛,有10个评委...

    导航:网站首页 > C语言二维数组怎么做:设计青年歌手参加歌曲大奖赛计分系统: 共...,怎样用c语言程序设计? 青年歌手参加歌曲大奖赛,有10个评委 C语言二维数组怎么做:设计青年歌手参加歌曲 ...

  7. 前端:JS/22/函数(函数的概念,函数的定义格式,函数定义格式的说明,函数的调用,函数的参数),全局变量和局部变量,拷贝传值和引用传址,匿名函数,二维数组,对象,自定义对象的创建

    函数 1,函数的概念 函数,是将一段公共的代码进行封装,给它起个名字叫"函数" 函数可以一次定义,多次调用:函数可以将常用的功能代码,进行封装,如:用户名的验证,验证码函数,邮箱验 ...

  8. c语言参数列表定义一个三维数组,C语言多维数组

    C语言多维数组教程 一般我们使用最多的就是二维数组,很少用到三维数组,更多维的数组几乎更用不到. C语言二维数组详解 定义 C 语言的二维数组,就是数组的每一个元素都是一个一维数组. 语法 type ...

  9. vector做函数参数和普通数组做函数参数有什么区别

    结论: 1,vector做函数参数,当vector参数做输出(vector数组需要在函数中被改变)的时候,需要传入vector的引用. 2,vector做函数参数,当vector参数做输入参数(只使用 ...

最新文章

  1. 收藏 | 图解Transformer:Attention Is All You Need
  2. 机器人流程自动化(RPA)系统原理及特点
  3. org/springframework/core/MethodClassKey
  4. 记事本中写c/c++程序在Windows下执行
  5. CentOS常用环境配置(MySQL、jdk、Redis、Nginx)
  6. Flask 蓝图,数据库链接
  7. IOS – OPenGL ES 调节图像饱和度 GPUImageSaturationFilter
  8. 混凝土静力受压弹性模量试验计算公式_【小马建考干货】天天送检,你知道混凝土试块检测哪些性能标指吗?...
  9. 【kafka】Kafka消费者分区分配策略详解
  10. B站项目资源过于敏感,稍后删,抓紧保存!!!
  11. Ext.Net学习笔记20:Ext.Net FormPanel 复杂用法
  12. s查看oracle空间分配,Oracle查看表空间使用率(包括临时表空间)
  13. SSh三大框架工作原理介绍
  14. Visual Studio 2010下载 + 附破解方法
  15. 计算n阶行列式的C语言实现
  16. ssm药品大全网站的设计与实现毕业设计源码281128
  17. ***cgy学长爱吃糖果***
  18. 如何申请芬兰居留许可(留学)
  19. 结构化写作2—— 构思写作框架
  20. impala的shell命令使用

热门文章

  1. Simpsons’ Hidden Talents——kmp入门
  2. python股票量化投资课程 百度云_网易云课堂 Python股票量化投资课程|百度云|天翼云|GD|OD下载...
  3. LaTeX公式编辑教程
  4. 【小程序】websocket实现“谁是卧底”在线随机发牌
  5. 我做了一个Python Bot,可以解决任何给定图像中的多项选择问题。 码]
  6. 一个研三女人想告诉后辈的事!
  7. 面试时总有恐惧感要如何有效消除呢
  8. 游戏行业回暖,但距离春天还有一段距离
  9. 1-1 medium vs. modality笔记
  10. 《超时空要塞》与《太空堡垒》之缘——同样伟大的硬币两面