c 数组传参
#include<stdio.h> //接收的是num数组的首地址 void fun1(int *num){ num[0]=123; printf("sizeof(num)=%lu\n",sizeof(num)); printf("num = %p,num+1 = %p \n",num,num+1); }
//int num[] 或 int num[400] void fun2(int num[400]){ num[0]=123; // printf("sizeof(num)=%lu\n",sizeof(num)); printf("num = %p,num+1 = %p \n",num,num+1); } int main(){ int arr[400]={0}; printf("sizeof(arr)=%lu\n",sizeof(arr)); printf("arr=%p,arr+1=%p\n",arr,arr+1); printf("arr[0] = %p\n",&arr[0]); fun2(arr); return 0; }
sizeof(arr)=1600 arr=0x7ffd549cc0c0,arr+1=0x7ffd549cc0c4 arr[0] = 0x7ffd549cc0c0 num = 0x7ffd549cc0c0,num+1 = 0x7ffd549cc0c4
sizeof(arr)=1600 arr=0x7ffc09aa6e90,arr+1=0x7ffc09aa6e94 arr[0] = 0x7ffc09aa6e90 sizeof(num)=8 num = 0x7ffc09aa6e90,num+1 = 0x7ffc09aa6e94
int 占4字节
char 占1字节
double 占8字节
指针变量大小
32位操作系统 4字节
64位操作系统 8字节
int arr[400][20]={0};
void func(int num[][20])
void func(int (*num)[20])
int **p=nulll
p,p+1 相差8字节(*p=8字节)
标签:
c
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义