数组作为函数参数

xiaoxiao2021-02-28  125

一维数组和多维数组都可以作为函数参数

int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; int b[]={1,2,3,4,5}; printf("%d\n",sizeof(*(&a)));//48(容易产生的误区的:二维数组名其实是个行指针,那么*(&a)取到的是这一行,那么sizeof(*(&a)))是16,这是错误的。只要&a就取到的是整个数组这个对象 printf("%d\n",sizeof(*(&b)));//20

一维数组

一维数组数组名字作为函数参数,退化为一级指针;

void test(int a[10]){ printf("\ntest=%d",sizeof(a)); //8(32位上为4),此时退化成一个指针 } int main(){ int a[10]; printf("%d\n",sizeof(a)); //(40) }
转载请注明原文地址: https://www.6miu.com/read-31197.html

最新回复(0)