主要内容:指针和数组细节,"//"的可移植性说明
#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;
}
输出: