C语言tips不完全汇总

以下内容是在学校学习C语言期间回答同学的疑问而总结的一些tips,因本人水平有限,如有错误还请各位指教。


1、

for(int i=0,i<strlen(s);i++)

这段循环中每次判断循环条件是否满足时都要调用一次strlen函数,但本身strlens)的值是不变的,所以可以单独用一个变量来装它,节省时间。

如:

int temp=strlen(s);
for(i=0;i<temp;i++)


2、

fread与fwrite连续使用时必须在之间用一个fseek,否则其中一个无效,貌似用fflush也行,但是没试过。


3、

’a’直接表示字符a,“a”表示一个地址,地址指向一个字符串a。


4、

char s[20];
s="hello" 

错误,必须用strcpy函数。因为s代表是的字符数组s的首地址,而s="helo" 相当于改变数组的首地址为字符串“hello”的地址,这是不被允许的。


5、

for(double i=0;i!=10;i+=0.1)
该循环其实是一个死循环,原因是因为浮点数是不准确的,不能准确地表达0.1这个数字,这个现象也叫浮点数陷阱。

关于浮点数的一些知识:

http://bbs.chinaunix.net/thread-3746530-1-1.html




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值