====== 常量指针表达式 ====== 当对全局(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; {{tag>C语言}}