int maxof(int *ages){
int length = sizeof(*ages);//算的是指针变量所占的空间大小
return length;
}
#include
int main(){
int ages[]={8,45,1,2,4,6};
//int length = sizeof(ages);
int length = maxof(ages);
printf("length = %d",length);
return 0;
}
结果会发现length 字节一直等于8。(指针变量在32位是4字节,在64位系统就是8个字节)
int maxof(int arry[],int lenth){
int max = arry[0];
for (int i = 1;i if (arry[i]>max) {
max = arry[i];
}
}
return max;
}
#include
int main(){
int a[]={78,99,12,34,56,45,};
int lenth = sizeof(a)/sizeof(int);
int max = maxof(a,lenth);
printf("max = %d\n",max);
return 0;
}
这个程序块中a并不是变量。所以在用的时候不会出现上面那种情况。数组的误差出现较小。“
#include
#include
int main(){
char *a;
char maxofarry(char *,int);
printf("请输入数字");
scanf("%s",a);
int length =strlen(a);
printf("length = %d",length);
char max =maxofarry(a,length);
printf("max = %c\n",max);
return 0;
}
char maxofarry(char a[],int length){
char max = a[0];
for (int i =1; iif (a[i]>a[0]) {
max= a[i];
}
}
return max;
}
这个是数组调用没有出现问题,因此可见在用sizeof函数时要注意这一点。