computer:c:tips:const_pointer_expr
常量指针表达式
当对全局(external)与静态(static)变量进行初始化时,初始化表达式必须是常量表达式。当变量是指针时,相应的常量指针表达式如何构成呢?
一般有如下几种方法:
1. 空指针。如:
double *p = NULL;
2. 由全局或静态函数转换成的函数指针。如:
extern int f(); static int (*fp)() = f;
3. 由全局或静态数组转换成的指针。如:
char ary[100]; char *p1 = ary; char *p2 = &ary[2];
4. 全局或静态变量的地址。如:
short s; short *p = &s;
5. 由整型常量强制转换而成(不可移植)。如:
long *p = (long *)0xFFFFFFFFF0;
6. 字符串常量转换成的指针。如:
char *p = "Hello, world";
7. 由以上3~6种指针与整型常量进行+/-的结果。如:
short *p1 = &s + 3; short *p2 = &s - 1;
computer/c/tips/const_pointer_expr.txt · 最后更改: 2014/11/01 02:02 由 127.0.0.1