程序員之---C語言細節12(指針和數組細節,"//"的可移植性說明)
阿新 • • 發佈:2017-06-22
[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(指針和數組細節,"//"的可移植性說明)