笔试题总结

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+局部变量:只在第一次调用函数的时候初始化该变量。

你可能感兴趣的:(c,c)