gpt4 book ai didi

c - 但是 sizeof() 运算符不适用于指针,但适用于数组名称。为什么会这样?

转载 作者:太空宇宙 更新时间:2023-11-04 05:41:40 25 4
gpt4 key购买 nike

<分区>

您好,我正在做这个练习,想在将指向数组的指针传递给函数后获取数组的大小:

但 sizeof() 运算符不适用于指针,但适用于数组名称。为什么会这样?这是我可以在 findPut 函数上获取数组大小的任何方法吗?

#include <stdio.h>

//global vars
int i,j;
//functions prototypes
void findPut(int *, int);

int main(void){
int ins=4;
int arr[10]={1,2,3,5,6,7,8};
printf("%d\n",sizeof(arr)); //gives 40
int *ap=arr;
printf("%d\n",sizeof(*ap)); //gives 4 instead of 40 why?? if ap and arr the same thing


findPut(ap, ins);
return 0;
}

//functions
void findPut(int *p, int n){
//vars
//getting size of array
int size= sizeof(*p);
//sizeof(int);
printf("%d\n",size); //gives 4 but expected 40????

}

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com