C/C++常用函数易错点分析
作者:shichen2014 时间:2021-11-13 23:21:30
本文简单分析了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++,函数
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
关于Assert.assertEquals报错的问题及解决
2023-11-03 04:56:10
![](https://img.aspxhome.com/file/2023/6/77136_0s.jpg)
Java笛卡尔积算法原理与实现方法详解
2023-11-18 22:08:17
![](https://img.aspxhome.com/file/2023/1/101981_0s.jpg)
web.xml SpringBoot打包可执行Jar运行SpringMVC加载流程
2023-11-24 07:40:52
![](https://img.aspxhome.com/file/2023/9/59929_0s.jpg)
c#字符串编码编码(encoding)使用方法示例
2022-10-04 07:24:58
elasticsearch head的安装及使用过程解析
2021-10-10 10:24:59
![](https://img.aspxhome.com/file/2023/2/79942_0s.png)
Android组合控件自定义标题栏
2021-11-04 01:12:36
Java ArrayList实现班级信息管理系统
2023-09-17 15:15:25
![](https://img.aspxhome.com/file/2023/7/85897_0s.jpg)
c# 通过内存映射实现文件共享内存的示例代码
2023-03-02 12:15:35
Java 将PPT幻灯片转为HTML文件的实现思路
2022-12-12 12:00:35
![](https://img.aspxhome.com/file/2023/2/76472_0s.png)
SpringSecurity登录使用JSON格式数据的方法
2021-09-10 21:40:40
![](https://img.aspxhome.com/file/2023/5/72355_0s.png)
Spring Boot集成ElasticSearch实现搜索引擎的示例
2021-06-02 05:06:16
![](https://img.aspxhome.com/file/2023/3/63793_0s.png)
字符串内存驻留机制详解示例
2023-09-24 04:09:32
C#文件分割的方法
2023-09-17 22:20:56
SpringBoot整合SpringSecurity实现JWT认证的项目实践
2022-06-23 22:09:09
![](https://img.aspxhome.com/file/2023/2/60792_0s.png)
Java数据结构之链表详解
2023-10-20 09:14:08
![](https://img.aspxhome.com/file/2023/7/58587_0s.png)
解决mybatis一对多查询resultMap只返回了一条记录问题
2022-07-08 08:36:31
java emoji表情存储的解决方法
2023-07-10 20:19:06
Android中SeekBar和RatingBar用法实例分析
2023-07-28 00:13:59
详解Spring依赖注入的三种方式使用及优缺点
2023-06-09 18:29:00
![](https://img.aspxhome.com/file/2023/6/61046_0s.png)
基于C#实现网络爬虫 C#抓取网页Html源码
2022-11-16 22:19:05