typedef 是定义类型用的虽然有时:
#define ptr_char char *
typedef char * ptr_char
好像也是差不多哪(我原来就这么认为),但是考虑以下的情况:
#define ptr_char char *
ptr_char a,b ;
那么a 和b都是指针么? 展开宏定义:
char * a, b ;
看出来了么? b是char ,a是char *
而用:
typedef char * ptr_char ;
ptr_char a,b;
a,b 都是 char *
那么,下一个const:(这个更叫人头疼啊!)
int const a =20;//谁都知道
void f1(const char a); ;//大概都明白
恩那么
int cosnt a
const int a
有区别么? 没有。
在函数中定义const参数 如:void f1(const int a); 那么可以防止a的改动。但是好象C语言本来就是不改实参的,嘛当然了,但是如果是:
void f1(const char * a);
void f1(char * const a);
我是一下就忘记的。 解决方法:背诵以下条文.
如果 const 出现在 * 左边,则指针指向的内容为常量;如果 const 出现在 * 右边,则指针自身为常量;如果 const 出现在 * 两边,则两者都为常量。
爱好着网上的,真是太强了!读了很多书还是这个记的最快!