主题:关于地址常量
数组名和函数名都是地址常量,二者有什么区别?
以下是我的实验,有些茫然
#include<iostream.h>
int max(int x,int y){
return x>y?x:y;
}
int arr[]={1,2,3,4,5};
void main(){
// cout<<sizeof(max)<<endl<<sizeof(&max)<<endl;
//仅仅sizeof(max)报错????
cout<<sizeof(arr)<<endl<<sizeof(&arr)<<endl;
int (*p0)(int,int)=&max;
int (*p1)(int,int)=max;
int c0,c1,c2,c3;
c0=(*p0)(5,4);
c1=p0(4,5);
c2=(*p1)(5,4);
c3=p1(4,5);
cout<<c0<<endl<<c1<<endl<<c2<<endl<<c3;
}
疑问:
1、sizeof(max)为什么报错?
2、&arr\&max是什么含义?是不是sizeof(&3)也行?(实际报错)
3、sizeof(&max)=4是为什么呢?
希望高手悉心指导
以下是我的实验,有些茫然
#include<iostream.h>
int max(int x,int y){
return x>y?x:y;
}
int arr[]={1,2,3,4,5};
void main(){
// cout<<sizeof(max)<<endl<<sizeof(&max)<<endl;
//仅仅sizeof(max)报错????
cout<<sizeof(arr)<<endl<<sizeof(&arr)<<endl;
int (*p0)(int,int)=&max;
int (*p1)(int,int)=max;
int c0,c1,c2,c3;
c0=(*p0)(5,4);
c1=p0(4,5);
c2=(*p1)(5,4);
c3=p1(4,5);
cout<<c0<<endl<<c1<<endl<<c2<<endl<<c3;
}
疑问:
1、sizeof(max)为什么报错?
2、&arr\&max是什么含义?是不是sizeof(&3)也行?(实际报错)
3、sizeof(&max)=4是为什么呢?
希望高手悉心指导