1、sizeof应用
short b(){return 1;
}
int main(){
char a[]={'a','b','c','d'};
printf("sizeof=%d\n",sizeof(a));
printf("sizeof=%d\n",sizeof(main()));
printf("sizeof=%d\n",sizeof(main));
printf("sizeof=%d\n",sizeof(b));
printf("sizeof=%d\n",sizeof(b()));
}
答案:4,4,1,1,2
2.各种const
const int n; //表示n是只读的,放在数据区,非常数区,可以通过其他方式(间接指针)修改
const A &a;//a是常引用,不能修改a中的变量,不能调用a中非静态非常函数;可调用静态函数!
const A *a; 等价于A const *a; 表示a指向的值不能修改;
typedef *char PCHAR;
const PCHAR p;等价于char * const p;等价于const (char *) p;
const 函数可以修改mutable变量;
const int a=5;
int *p=&a;
*p=3; cout<<a<<" "<<*p<<end;
输出5,3(编译器对常量进行了优化)
3、各种static
static +全局变量/函数:有点类似于c++中的namespace功能,可以避免不同文件中的命名冲突
static+局部变量:只在第一次调用函数的时候初始化该变量。