计算机二级C语言:挖掘C语言潜在高级功能

来源:微学计算机考试频道发布时间:2008-08-20
 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]之类的语句访间数组元素了。三维甚至更多维动态数组可以类似实现。