計(jì)算機(jī)二級C語言:挖掘C語言潛在高級功能

字號:

1、字符數(shù)組和字符指針
     指針和數(shù)組是C特色的一部分。數(shù)組是占用預(yù)分配的連續(xù)空間,C語言中對連續(xù)空間的訪問可以有以下幾種方法:加下標(biāo)構(gòu)成數(shù)組是最直接的;常量字符串也可以類似訪問,例如,下面語句就可將字符串打印出來。
     for(i=0;i<15;i++)
     putchar(″constant string″[i]);
     函數(shù)printf()的格式串用字符數(shù)組代替,可以靈活地控制輸出格式。下面的函數(shù)就可以根據(jù)參數(shù)改變輸出格式。
     Pr—int(int form,int data)
     {
     char str[50];
     sprintf(star,″%%%dd″,form);
     printf(str,data);
     }
     2、C語言具有很強(qiáng)的內(nèi)存格式編排功能,主要是通過sscanf()和sprintf()實(shí)現(xiàn)的。靈活運(yùn)用這兩個(gè)函數(shù)可以收到意想不到的效果。例如,數(shù)和數(shù)字串的轉(zhuǎn)換是常需要的,利用這兩個(gè)函數(shù)可以簡單的實(shí)現(xiàn)。下面的函數(shù)func就實(shí)現(xiàn)數(shù)到數(shù)字串的轉(zhuǎn)換,類似地可以實(shí)現(xiàn)其逆功能。
     func(int d,char *str)
     {
     sprintf(str,″%d″,d);
     }
     3、動態(tài)多維數(shù)組
     C語言本身并沒有提供這類功能,而實(shí)踐中確實(shí)常常需要。我們可以用C來實(shí)現(xiàn)。下面程序段就動態(tài)地實(shí)現(xiàn)了二維數(shù)組。
     int,i,n,m,
     double **a,x,
     a=(double *)calloc(n,sizeof(double *));
     for (j=0;j     上面程序段定義a為指向指針的指針,然后給a分配一塊內(nèi)存,其格式為雙精度指針,最后用for循環(huán)語句給指針分配空間,這樣就相當(dāng)于定義了a[n][m]?,F(xiàn)在就可以用類似x=a[i][j]之類的語句訪間數(shù)組元素了。三維甚至更多維動態(tài)數(shù)組可以類似實(shí)現(xiàn)。