#include <stdio.h> int main(int argc, char **argv) { int a[10]={1,2,3,4,5,6,7,8,9,0},*p; #if 0 /* 按移植性来说,在《c语言程序设计--现代方法》指出要用当前注释方法,而不是// 因为一些编译可能不支持 */ // 错误举例 while(*a != 0) { a++; // a++ 相当于a = a+1,不能改变a的值 // 而*(a+1) = 12;是可以的,a[1]= 12; // a 可以代替 &a[0], a+1可以代替&a[1] } #elif 1 p = a; while(*p !=0) { printf("%d\n",*p); *p++; } #else int i; // 用指针做数组名 p = a; for(i = 0; i < 10; i++) { printf("%d\n",p[i]); } #endif return 0; }
输出:
程序猿之---C语言细节(指针和数组细节,"//"的可移植性说明)
原文地址:http://blog.csdn.net/human_evolution/article/details/40896807