|
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 ...
|