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字节)

posted @   qingjiawen  阅读(66)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示