1. 程式人生 > >程序員之---C語言細節12(指針和數組細節,"//"的可移植性說明)

程序員之---C語言細節12(指針和數組細節,"//"的可移植性說明)

[1] watermark popu i++ gravity 移植 char dsm 指針

主要內容:指針和數組細節,"//"的可移植性說明

#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語言細節12(指針和數組細節,&quot;//&quot;的可移植性說明)