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

指针数组和数组指针作为形式参数

类型

  • 形式参数为指针数组
  • 形式参数为数组指针
  • 总结

形式参数为指针数组

void test(int* p[3], int n)
{
	printf("p为:%p\n", p);//p为:000000D93D71F718
	p++;
	printf("p为:%p\n", p);//p为:000000D93D71F720 加了8
	p++;
	printf("p为:%p\n", p);//p为:000000D93D71F728 加了8
}
#include<stdio.h>
int main(void)
{
	int arr[3][5] = { 1,2,3,4,5,6 };
	test(arr, 6);//arr为:000000D93D71F718
	printf("arr为:%p\n", arr);
	return 0;
}

数组进行加减运算时,加多少,减多少取决于数组的类型。数组的类型是指向整形的指针,指针的大小是8个字节,所以p加1相当于p加8.

形式参数为数组指针

void test(int (*p)[5], int n)
{
	printf("p为:%p\n", p);//p为:000000A908EFF648
	p++;
	printf("p为:%p\n", p);//p为:000000A908EFF65C 加了20
	p++;
	printf("p为:%p\n", p);//p为:000000A908EFF670 加了20
}
#include<stdio.h>
int main(void)
{
	int arr[3][5] = { 1,2,3,4,5,6 };
	test(arr, 6);
	printf("arr为:%p\n", arr);//arr为:000000A908EFF648
	return 0;
}

指针进行加减运算时,加多少,减多少取决于指针的类型。指针的类型是指向有五个整形的数组,一个整形的大小是4个字节,五个整形的数组占20个字节。

总结

指针或者数组在进行运算时,加多少减多少等于加的这个数乘一个倍数。这个倍数取决于指针或数组的类型。指针则取决于指针指向类型的大小,数组则取决于数组的类型,即数组的每个“数”都装了什么。
函数在传递参数时,形式参数在栈区新开辟一块容纳形式参数类型的空间,实际参数的值赋给ta。


http://www.kler.cn/news/161877.html

相关文章:

  • SmartChart:一站式数据可视化解决方案
  • SpringBoot:SpringMVC(上)
  • 2023-12-04 AIGC-Stable Diffusion和SadTalker-搭建及使用
  • Linux_CentOS_7.9 VNC安装卸载以及相关配置开机自启动服务简易记录
  • 字符串排序
  • 【华为数据之道学习笔记】3-2 基础数据治理
  • JavaEE之多线程编程(一):基础篇
  • 手机升级到iOS15.8后无法在xcode(14.2)上真机调试
  • ubuntu 14.04的git 错误: gnutls_handshake() failed: Handshake failed
  • 华为云安全组规则
  • Android 11.0 MTK Camera2 设置默认拍照尺寸功能实现
  • vue3日常知识点学习归纳
  • 第 7 部分 — 增强 LLM 安全性的策略:数学和伦理框架
  • 微前端 -- wujie 预加载和原理 无界传参
  • 探索图像生成中的生成对抗网络 (GAN) 世界
  • 唯创知音WTV380语音芯片高品质声音播放提示IC在骨盆按摩器上的应用介绍
  • 1、命名空间、C++的复合类型、缺省参数
  • 精通Nginx(21)-大幅度提升性能优化方法
  • 石头剪刀布python
  • TCP通信
  • qt中sokect断开的几种情况
  • keil添加了头文件仍然报找不到头文件的原因
  • 4-Docker命令之docker stop
  • Apache Flink(九):集群基础环境搭建-Centos7节点配置
  • LeetCode 每日一题 Day 6(DFS+BFS)
  • ChatGPT在国内的使用限制,国内的ChatGPT替代工具
  • C#winform上下班打卡系统Demo
  • 基于AWS Serverless的Glue服务进行ETL(提取、转换和加载)数据分析(一)——创建Glue
  • 两个分数相加。
  • 持续集成交付CICD:GitLabCI 运行前后端项目