c语言进阶总结1

1.善于运用符号常量。

把数字埋在程序中没有任何好处,一方面不能给以后看你程序的人提供什么信息,一方面修改起来也很麻烦。

可以用define来定义符号常量。

 

#define 你想用的名称    实际的数字或者字符序列   /*符号常量一般大写,与小写的变量相区分*/

如:#define MAX  100

 

注1:define定义的符号变量是没有类型的,编译不进行安全检测,容易出问题,因此也有人说用const 可以完全代替define,

而且更好。

如:const int MAX  =  100

 

注2:define只是替换。

如:#define  A  3+5

       const int A  =  3+5

 

一式中  3  *   A  就等价于 3 * 3 + 5 = 14

二式中 3  *   A  就等价于 3 * 8 = 24

 

如果你要深入追究他俩的区别

 

 

2.getchar()函数返回的是int类型的数据。

int c;
c=getchar();


 

3.当心编译器由于贪心法进行错误编译

比如:将x除以p指针所指向的值,之后结果赋值给Y

得:   Y=x/*p;

但是编译器会将/*  当成注释的开始,将x直接赋值给Y

 

正确做法应该是Y=x/(*p)

 

4.用单引号引起来的相当于一个数字,用双引号引起来的末尾还有 ‘\0‘

 

5.

float *g() 指g()函数返回浮点类型的指针

float (*g)() 为指向返回的浮点类型的函数指针

 

6.多个运算符要按计算顺序打括号,避免考虑不到符号优先级方面的问题产生错误的运算。

 

7.小心if、for、while后的分号位置,注意switch中,case后的break和最后的default。

若故意不加break语句,可以写个注释标明。

 

8.C语言中else总与最近的IF想匹配

if

             if

else

 

这样的结构最后也会自动变成

if

          if

          else

(不像PYTHON那样,缩进对齐就行)

   因此要养好习惯

   if

   {

         if

    }

   else

这样才和第一个IF想匹配,因为第二个IF被“封装”了

 

9.对数组的操作就是对指针的操作。把数组当作参数代入函数,其实代入的就是指向第一个元素的指针。

main(int argc,char *argv[ ] )

{

}

等价于

main(int argc,char **argv)

{

}

 

 

10.数据的边界问题。避免栏杆错误。

 

c语言进阶总结1

上一篇:Programming Python--Script Exection Context


下一篇:Python tricks(6) -- python代码执行的效率