龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

灵活运用c语言实现高级功能

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
C语言以其简洁、灵活、表达能力强,产生的目标代码质量高,可移植性好而著称于世。巧妙、灵活地运用C可以进一步挖掘出其潜在的功能。 1、字符数组和字符指针 指针和数组是C最具

  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

  

   上面程序段定义a为指向指针的指针,然后给a分配一块内存,其格式为双精度指针,最后用for循环语句给指针分配空间,这样就相当于定义了a[n][m]。现在就可以用类似x=a[i][j]之类的语句访间数组元素了。三维甚至更多维动态数组可以类似实现

  

精彩图集

赞助商链接