当前位置: 首页 > news >正文

c语言之在函数中传递指针

c语言中定义一个函数,如果说是形参一个数组,这个数组在编译后会变成一个指针变量

比如下面的代码例子

#include<stdio.h>
void ff(char a[])
{a[1]='r';a[4]='r';printf("%d\n",a);
}int main()
{char a[]="peogeam";ff(a);printf("%s\n",a);printf("%d\n",a);return 0;
}

在这个例子中,ff函数中的数组a[]经过编译后变成一个指针变量

在main函数中,定义一个数组a,在ff函数中引用a,a在编译后成为一个指针变量,指向第一个数组元素的地址,a[1]=*(a+1),a[4]=*(a+4)

函数传递数组一共四个情况

1.形参和实参都是数组名,就是上面的代码一样

2.实参数组名,形参指针

#include<stdio.h>
void ff(char *a)
{a[1]='r';a[4]='r';printf("%d\n",a);
}int main()
{char a[]="peogeam";ff(a);printf("%s\n",a);printf("%d\n",a);return 0;
}

3.实参指针,形参数组名

#include<stdio.h>
void ff(char a[])
{a[1]='r';a[4]='r';
}int main()
{char a[]="peogeam";char *p=a;ff(p);printf("%s\n",a);return 0;
}

4.形参和实参都是指针名

#include<stdio.h>
void ff(char *a)
{*(a+1)='r';*(a+4)='r';
}int main()
{char a[]="peogeam";char *p=a;ff(p);printf("%s\n",a);return 0;
}

http://www.lryc.cn/news/324612.html

相关文章:

  • vue2 插槽(默认插槽 slot 、具名插槽 v-slot 、作用域插槽 slot-scope -- 插槽传值 )
  • (第79天)单机转 RAC:19C 单机 到 19C RAC
  • Spring Cloud微服务Actuator和Vue
  • Iterator对象功能学习
  • Linux的一些基本指令
  • 【tips】Git使用指南
  • 【字节序】
  • 数据结构(五)——树森林
  • vscode配置c/c++调试环境
  • 食品输送带的材质
  • 普通用户权限运行Docker
  • 7.Java并发编程—掌握线程池的标准创建方式和优雅关闭技巧,提升任务调度效率
  • 从边缘设备丰富你的 Elasticsearch 文档
  • day29|leetcode|C++|491. 非递减子序列|46. 全排列|47. 全排列 II
  • [Java、Android面试]_12_java访问修饰符、抽象类和接口
  • Linux:Prometheus的源码包安装及操作(2)
  • MongoDB聚合运算符:$integral
  • 手撕算法-买卖股票的最佳时机 II(买卖多次)
  • 技术创新与产业升级
  • 透视未来工厂:山海鲸可视化打造数字孪生新篇章
  • 三.寄存器(内存访问)
  • Day31 贪心算法
  • 【WEEK4】 【DAY5】AJAX - Part Two【English Version】
  • 力扣100热题[哈希]:最长连续序列
  • python笔记基础--文件和存储数据(7)
  • Vue黑马笔记(最新)
  • 安全工具介绍 SCNR/Arachni
  • 赋能数据收集:从机票网站提取特价优惠的JavaScript技巧
  • 【大模型】在VS Code(Visual Studio Code)上安装中文汉化版插件
  • 自定义WordPress顶部的菜单的方法