C語言以其簡潔、靈活、表達能力強,產生的目標代碼質量高,可移植性好而著稱於世。巧妙、靈活地運用C可以進一步挖掘出其潛在的功能。
1、字符數組和字符指針
指針和數組是C最具特色的一部分。數組是占用預分配的連續空間,C語言中對連續空間的訪問可以有以下幾種方法:加下標構成數組是最直接的;常量字符串也可以類似訪問,例如,下面語句就可將字符串打印出來。
for(i=0;i<15;i++)
putchar(″constant string″[i]);
函數printf()的格式串用字符數組代替,可以靈活地控制輸出格式。下面的函數就可以根據參數改變輸出格式。
Pr—int(int form,int data)
{
char str[50];
sprintf(star,″%%%dd″,form);
printf(str,data);
}
2、C語言具有很強的內存格式編排功能,主要是通過sscanf()和sprintf()實現的。靈活運用這兩個函數可以收到意想不到的效果。例如,數和數字串的轉換是常需要的,利用這兩個函數可以簡單的實現。下面的函數func就實現數到數字串的轉換,類似地可以實現其逆功能。
func(int d,char *str)
{
sprintf(str,″%d″,d);
}
3、動態多維數組
C語言本身並沒有提供這類功能,而實踐中確實經常需要。我們可以用C來實現。下面程序段就動態地實現了二維數組。
int,i,n,m,
double **a,x,
a=(double *)calloc(n,sizeof(double *));
for (j=0;j<n;j++) a[j]=(double *)calloc(m,sizeof(double));
上面程序段定義a為指向指針的指針,然後給a分配一塊內存,其格式為雙精度指針,最後用for循環語句給指針分配空間,這樣就相當於定義了a[n][m]。現在就可以用類似x=a[i][j]之類的語句訪間數組元素了。三維甚至更多維動態數組可以類似實現