摘要:
指针的重要性不言而喻,既是重点也是难点。可以配合小工具cdecl(C gibberish↔English,即部分C代码与英文互译)来理解指针,相当有效。
指针的重要性不言而喻,既是重点也是难点。今天看了《C和指针》部分内容(13.2)。个人认为,配合小工具(C gibberish↔English,即部分C代码与英文互译)来理解指针,相当有效。不可否认的是,有些时候用中文描述显得很绕口,用英文反而更易懂。(因为中文主要是靠语义来衔接句子的,而英文主要靠语法)下面分享心得:
普通指针
/*declare i as int*/
int i; //一个整型变量
/*declare i as pointer to int*/
int *i; //一个指向整型的指针
/*注:以下并没有声明两个指针,星号只作用于f,f是指针,而g只是普通的整型变量*/
int* f,g; |
指针函数
/*declare f as function returning int*/
int f();
/*declare f as function returning pointer to int*/
int *f(); /*f是一函数,其返回值类型是一个指向整型的指针*/ |
函数指针
/*declare f as pointer to function returning pointer to int*/
int (*f)(); /*f是函数指针,其所指向的函数返回一个整型值*/
/*declare f as pointer to function returning pointer to int*/
int *(*f)(); /*f也是函数指针,其所指向的函数返回一个整型指针*/ |
指针数组
/*declare f as array of int*/
int f[];
/*declare f as array of pointer to int*/
int *f[]; /*f是数组,其元素类型是指向整型的指针*/
/*注:以下两种是非法声明*/
int f()[];/*函数只能返回标题,不能返回数组*/
int f[]();/*f是数组,存放返回值为整型的函数。而不同函数长度未必等长*/
|
数组指针
/*declare f as pointer to array of int*/
int (*f)[]; /*f是指针,指向整型数组*/ |
阅读(2171) | 评论(0) | 转发(0) |