测试环境:

win10 x86-64

gcc: x86_64-pc-cygwin

1. 说明

1)作为函数形参时(也只有这种情况),数组与指针等同,int *p = int a[],p和a在函数内部都是指针

2)数组作为函数形参时将被转化为指向数组第一个元素的指针,无论是int a[10]还是int a[]形式的形参,在函数内部都是int *a形式指针

3)没有办法直接将数组本身传递给函数(可以间接传递,如将数组封装再结构体内~~~)

3)由于规则2),下列用法均正确,it's amazing!

fun(&i);

fun(p);

fun(a);

2. 代码:

#include <stdio.h>
#include <stdlib.h>void fun(int a[10])
{printf("fun: a[0] = %d\n", *a);
}void fun2(int a[])
{printf("fun2: a[0] = %d\n", *a);
}void fun3(int *a)
{printf("fun2: a[0] = %d\n", *a);
}int main()
{int i = 1;int *p = NULL;int a[10] = {5};p = &i;fun(&i);fun(p);fun(a);fun2(&i);fun2(p);fun2(a);fun3(&i);fun3(p);fun3(a);return 0;
}

3. 编译

无warning无error

4. 运行

D:\baoli\Desktopλ .\a.exefun: a[0] = 1fun: a[0] = 1fun: a[0] = 5fun2: a[0] = 1fun2: a[0] = 1fun2: a[0] = 5fun2: a[0] = 1fun2: a[0] = 1fun2: a[0] = 5

C语言高级编程:数组和指针作为函数形参相关推荐

  1. 【C语言进阶】数组、指针、函数——传参篇

    目录 写在前面 一.数组传参 一维数组传参 二维数组传参 二.指针参数 一级指针传参 二级指针传参 三.函数传参 四.看懂代码 写在最后 写在前面 上篇文章介绍了指针数组和数组指针,有兴趣的小伙伴可以 ...

  2. 【嵌入式】C语言高级编程-数组和结构体初始化(02)

    00. 目录 文章目录 00. 目录 01. 初始化概述 02. 指定初始化数组元素 03. 指定初始化结构体成员变量 04. Linux内核中应用 05. 初始化总结 06. 附录 01. 初始化概 ...

  3. C语言高级编程:二级指针的赋值

    测试环境:win10+cygwin --------------------------------- 在c语言中,经常会对二级指针变量(即指针的指针)进行赋值操作.如果要对一个二级指针进行赋值,不能 ...

  4. c语言高级程序设计第五版PDF,C语言高级编程.pdf

    C语言高级编程 概述 由几个测试程序说开去 预编译与宏 高级预编译介绍 宏的高级用法 变量 变量分类详细解析 我的变量去哪儿了? 大小端对变量的影响 内存与指针 常见内存使用错误大观 指针,又是指针! ...

  5. Go 学习推荐 —(Go by example 中文版、Go 构建 Web 应用、Go 学习笔记、Golang常见错误、Go 语言四十二章经、Go 语言高级编程)

    Go by example 中文版 Go 构建 Web 应用 Go 学习笔记:无痕 Go 标准库中文文档 Golang开发新手常犯的50个错误 50 Shades of Go: Traps, Gotc ...

  6. 鼠标绘图 c语言,c语言高级编程技术教程 图形显示方式与鼠标输入.doc

    c语言高级编程技术教程 图形显示方式与鼠标输入 c语言高级编程技术教程 图形显示方式和鼠标输入 图形显示方式和鼠标输入 问题的提出编写程序,使用鼠标进行如下操作:按住鼠标器的任意键并移动,十字光 标将 ...

  7. c语言未初始化的指针下标访问是0,C语言的二数组的指针访问.doc

    C语言的二数组的指针访问 二维数组的指针访问 --王炳华 指向二维数组的指针及用指针访问二维数组,是学习指针的最大难点.如果真正弄懂了这个问题,就可以说你学会了使用指针. 二维数组的指针 指针就是地址 ...

  8. c语言二维数组 ppt,C语言二维数组与指针.ppt

    C语言二维数组与指针.ppt 好好考,全国计算机等级考试 二级C语言,第12讲 二维数组与指针,二维数组的定义 数组元素的引用及初始化 二维数组和指针 二维数组名和指针数组作为实参 二维数组程序举例 ...

  9. 高级编程中C语言属于,c语言高级编程

    c语言高级编程 C高级编程 责任编辑:admin 更新日期:2005-8-6 深入了解C语言(函数的参数传递和函数使用参数的方法) tangl_99(原作) 关键字 C语言,汇编,代码生成,编译器 C ...

最新文章

  1. javascript之prototype总结常用方法
  2. c swap方法在哪个库里面_在编程竞赛中高效地编写C/C ++代码
  3. 2022/4/3刷题
  4. 搜索引擎是怎么删除重复网页的
  5. 答疑:有关一例EXT3文件系统故障
  6. 非线性光纤光学_1.56 m波段高能量百飞秒光纤激光器
  7. android listview添加数据_Android系统列表控件
  8. java datasource 配置_Spring boot 基于注解方式配置datasource
  9. Hive分区(静态分区+动态分区)
  10. 文件不存在的话创建文件 文件上传所遇到的问题、
  11. 服务器硬件工程师从入门到精通_硬件工程师必阅--如何“0基础”从入门到精通?(附CAD使用指南)...
  12. 7.20-7.24(2)
  13. 计算机汉字编码输入码,汉字编码、输入系统和码本
  14. Biobank genetic data探析(二)
  15. 火狐浏览器找不到书签了
  16. 正则表达式,分组,捕获组,反向引用,重复数字正则表达式 ,python 实现
  17. Resource.arsc文件格式解析
  18. PIP安装本地离线包whl
  19. java透视图_Eclipse透视图
  20. 报错信息:Avoid mutating a prop directly since the value will be overwritten

热门文章

  1. android notification 的总结分析
  2. shell中函数返回值
  3. 内存数据库到底有多快?
  4. wpf 切换搜狗输入法英文_搜狗输入法全新升级手写功能,中英数字自由写,告别切换丨本周新闻...
  5. Tomcat启动设置环境变量
  6. struts2,jsp,freemarker编程小技巧
  7. java取消按钮_Java Swing-单击取消按钮时不循环
  8. B. Bogosort codeforces(思维)
  9. Super-palindrome(思维)
  10. python基础总结--- 列表、内置函数(4-5)