欢迎来到代码驿站!

C代码

当前位置:首页 > 软件编程 > C代码

C/C++常用函数易错点分析

时间:2020-12-08 23:04:11|栏目:C代码|点击:

本文简单分析了C/C++中常用函数的易错点,包括memset、sizeof、getchar等函数。分享给大家供大家参考之用。具体分析如下:

1.memset

#include <string.h>
void* memset( void* buffer, int ch, size_t count );

将内存中buffer的前count个字节的内容全部设置为ch指定的ASCII值.经常用来初始化数组.复制时以字节为单位,如果buffer是int long,或者其他类型的指针时,需要注意不一定为数组的大小,应该是为 数组大小*sizeof(类型).推荐直接使用:

sizeof(buffer)//buffer是数组

2.sizeof

返回类型大小,以字节为单位.
对数组和指针是不同的.

int *p=new int[5]; 
int q[5]={0}; 
cout<<sizeof(p)<<endl; 
cout<<sizeof(q)<<endl; 
delete[] p;

输出值是不同的.(64位机器测试)
sizeof(p):p为指针,输出的是指针类型的大小,64位上64/8=8
sizeof(q):q为int类型的数组,输出的是数组所占字节数.4*5=20.

3.getchar

#include <stdio.h>
int getchar( void );

这里getchar返回的是整形而不是char,若出现下面代码.

char c;
while((c=getchar())!=EOF)
{
XXX
}

这里c是被截断int类型的一部分,c可能无法容下所有字符,特别是EOF.
出现结果的可能,

1)某些字符截断后与EOF相同,导致程序在运行时正常终止

2)陷入死循环

3)有些编译器确实对c进行了截断处理,但是比较时,比较的 是getchar的返回值与EOF,导致程序看似"正常运行"

希望本文所述对大家的C/C++程序设计有所帮助。

上一篇:C++编程中逗号运算符和条件运算符的使用方法讲解

栏    目:C代码

下一篇:C++实现扫雷小游戏

本文标题:C/C++常用函数易错点分析

本文地址:http://www.codeinn.net/misctech/30695.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有