时间:2021-05-20
本文简单分析了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(类型).推荐直接使用:
2.sizeof
返回类型大小,以字节为单位.
对数组和指针是不同的.
输出值是不同的.(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++程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例分析了C++中回调函数(CallBack)的用法。分享给大家供大家参考。具体分析如下:如果试图直接使用C++的成员函数作为回调函数将发生错误,甚至编译就
千万要注意,C不支持默认参数C/C++支持可变参数个数的函数定义,这一点与C/C++语言函数参数调用时入栈顺序有关,首先引用其他网友的一段文字,来描述函数调用,
本文实例讲述了C++结构体用法。分享给大家供大家参考。具体分析如下:C++结构体提供了比C结构体更多的功能,如默认构造函数,复制构造函数,运算符重载,这些功能使
C++中构造函数的实例详解c++构造函数的知识在各种c++教材上已有介绍,不过初学者往往不太注意观察和总结其中各种构造函数的特点和用法,故在此我根据自己的c++
前置声明是C/C++开发中比较常用的技巧,主要用在三种情形:变量/常量,例如externintvar1;;函数,例如voidfoo();,注意类的成员函数无法单