| 
 | 
 
5鱼币 
这个代码很简单,就是计算三个数中的最大和最小,用result[0]存储最大,result[1]存储最小; 
 
问题;sizeof(Array)为什么等于4? 
 
插入代码: 
- #include<stdio.h>
 
 - #include<stdlib.h> 
 
 - int *M(int Array[]){
 
 -         int result[2]={Array[0],Array[0]};
 
 -         int i;
 
  
-         printf("sizeof(Array)=%d ;\n",sizeof(Array));
 
  
-         for(i=1;i<3;i++){
 
 -                 if(Array[i]>result[0]){
 
 -                                 result[0]=Array[i];
 
 -                 }
 
 -                 else if(Array[i]<result[1]){
 
 -                         result[1]=Array[i];        
 
 -                 }
 
 -                 else if(Array[i]==result[0]||Array[i]==result[1]){
 
 -                         fprintf(stdout,"%d==%d & %d==%d ;\n",Array[i],result[0],Array[i],result[1]);
 
 -                 }
 
 -                 else {
 
 -                         fprintf(stderr,"数据项计算错误!\n");
 
 -                         exit(0);
 
 -                 }
 
 -         }        
 
 -                 printf("计算结果是:\n\n"); 
 
 -                 for(i=0;i<2;i++){
 
 -                         printf("result[%d]=%d \n",i,result[i]);
 
 -                 }
 
 -                 return result;
 
  
- }
 
 - int main(void){
 
 -         int n[3],i;
 
 -         int *pm=NULL;
 
 -         for(i=0;i<3;i++){
 
 -                 printf("Enter num:");
 
 -                 scanf("%d",&n[i]);
 
 -         }
 
 -         pm=M(n);
 
 -         printf("\n\nMax num :%d ; Min num :%d ;\n\n",pm[0],pm[1]);
 
 -         getchar();
 
 -         return 0;
 
 - }
 
 
  复制代码 
 
时间:2013年8月1日17:43:41; |   
 
 
最佳答案
查看完整内容 
哎呀 楼主 切听我慢慢道来
举个例子
1. 
struct Num
{
    int num1;
    int num2;
}
Num tmp
sizeof(tmp)-> 这个东西等于8 因为里面含有两个整数变量, 所以大小是8
如果
Num* tmp
sizoef(tep)-> 这个东西就是4 因为他是一个指针变量
哪怕
struct Num
{
   int num1;
   int num2;
   ....
   int num100;
}
这个结构体里有100个int整形变量, 但是他的指针类型的大小还是4
楼主切记一句话 指针的zize ... 
 
 
 
 
 
 
 |