C语言需要了解的(二)

1.一个常见的编程错误是假设函数能改变变量的值。因为在C中函数是严格遵循按值调用的,所以在调用环境中不可能通过用变量作为参数调用来改变变量的值。

        如:  f()是函数,V是变量,那么f(V)在调用环境中不能改变变量V的值

                 如果f()中返回一个值,令V=f(V),则能够改变变量的值。

2.在main()函数中使用return和exit()是等价,均能是函数返回值到宿主函数,并实现程序的正常结束。但是在其他的函数中exit()就不同于return,因为exit()在返回一个值到宿主函数之后,还要终止函数的执行。返回值为0时表示函数正常的终止,返回非0值时表示非正常终止,函数执行会有遗留问题。

3.编写递归函数的终止条件容易犯错,这类错误经常导致死循环。

    例如:

                     #include<stdio.h>

                     int main(void){

                     int    count=0;

                     if(++count<77){

                     printf("&&&&&&&&&&&&&&&");

                     main();

                    }

                    return 0;

                   }

这个例子在每次调用main函数时都将count初始化为0,出现死循环是不可以避免的,如果在main函数声明是使用静态声明则可以避免这种现象的发生。static int count 在每次调用main函数时就不会变量count初始化了。

4.由于传统C没有函数原型,所以在ANSI C中编写一个没有函数原型的程序,传递给函数的实参就得不到保证,意味着不会进行类型检查或类型转换。在ANSIC中的函数原型的类型安全特征是很强大的,一致的使用函数原型能够获得很大的好处。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值