C语言编程所用计算机为64位,那么按理说指针变量所占字节数应该是8位,我理解的f(char*)函数的作用:把字符数组a[30]转换成指针类型的char*a,再计算指针所占的字节数。请问为什么计算所占字节数是4,明明在main函数里计算指针字节数还是8啊
#include <stdio.h>
#include<string.h>
int f(char*);
int main(){
char a[30]="OOP is fun!";
char*b="OOP is fun!";
printf("%d ",sizeof(a));
printf("%d ",sizeof(b));
printf("%d",sizeof(f(a)));
return 0;
}
int f(char*arry){
return sizeof(arry);
}
输出:30 8 4
sizeof(f(a))的结果是计算f(a)返回值的字节数,由于f(a)定义为int f(char *),因此返回值是int类型
在64bit系统上,sizeof(int)等于4
不知道能明白不,不理解可以私聊
你的f函数返回类型是int,sizeof(int)就是4