C/C++常用函數(shù)易錯(cuò)點(diǎn)分析
本文簡(jiǎn)單分析了C/C++中常用函數(shù)的易錯(cuò)點(diǎn),包括memset、sizeof、getchar等函數(shù)。分享給大家供大家參考之用。具體分析如下:
1.memset
#include <string.h> void* memset( void* buffer, int ch, size_t count );
將內(nèi)存中buffer的前count個(gè)字節(jié)的內(nèi)容全部設(shè)置為ch指定的ASCII值.經(jīng)常用來(lái)初始化數(shù)組.復(fù)制時(shí)以字節(jié)為單位,如果buffer是int long,或者其他類(lèi)型的指針時(shí),需要注意不一定為數(shù)組的大小,應(yīng)該是為 數(shù)組大小*sizeof(類(lèi)型).推薦直接使用:
sizeof(buffer)//buffer是數(shù)組
2.sizeof
返回類(lèi)型大小,以字節(jié)為單位.
對(duì)數(shù)組和指針是不同的.
int *p=new int[5];
int q[5]={0};
cout<<sizeof(p)<<endl;
cout<<sizeof(q)<<endl;
delete[] p;
輸出值是不同的.(64位機(jī)器測(cè)試)
sizeof(p):p為指針,輸出的是指針類(lèi)型的大小,64位上64/8=8
sizeof(q):q為int類(lèi)型的數(shù)組,輸出的是數(shù)組所占字節(jié)數(shù).4*5=20.
3.getchar
#include <stdio.h> int getchar( void );
這里getchar返回的是整形而不是char,若出現(xiàn)下面代碼.
char c;
while((c=getchar())!=EOF)
{
XXX
}
這里c是被截?cái)鄆nt類(lèi)型的一部分,c可能無(wú)法容下所有字符,特別是EOF.
出現(xiàn)結(jié)果的可能,
1)某些字符截?cái)嗪笈cEOF相同,導(dǎo)致程序在運(yùn)行時(shí)正常終止
2)陷入死循環(huán)
3)有些編譯器確實(shí)對(duì)c進(jìn)行了截?cái)嗵幚?但是比較時(shí),比較的 是getchar的返回值與EOF,導(dǎo)致程序看似"正常運(yùn)行"
希望本文所述對(duì)大家的C/C++程序設(shè)計(jì)有所幫助。
- C/C++位操作實(shí)例總結(jié)
- C#中的位操作小結(jié)
- C++虛函數(shù)表實(shí)例分析
- 提高C++程序運(yùn)行效率的10個(gè)簡(jiǎn)單方法
- C++編譯器無(wú)法捕捉到的8種錯(cuò)誤實(shí)例分析
- C++直接初始化與復(fù)制初始化的區(qū)別深入解析
- C++中引用&與取地址&的區(qū)別分析
- C++指向函數(shù)的指針用法詳解
- 深入分析C++中聲明與定義的區(qū)別
- C++中重載、重寫(xiě)(覆蓋)和隱藏的區(qū)別實(shí)例分析
- 深入理解C++中public、protected及private用法
- C++位操作的常見(jiàn)用法小結(jié)
相關(guān)文章
C語(yǔ)言實(shí)現(xiàn)手寫(xiě)字符串處理工具的示例代碼
這篇文章主要為大家詳細(xì)介紹了利用C語(yǔ)言實(shí)現(xiàn)手寫(xiě)字符串處理工具的相關(guān)資料,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下2022-09-09
win10環(huán)境下C++ vs2015編譯opencv249的教程
這篇文章主要介紹了win10環(huán)境下C++ vs2015編譯opencv249的教程,本文分步驟給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03
解決Visual?Studio?Code錯(cuò)誤Cannot?build?and?debug?because?
這篇文章主要為大家介紹了解決Visual?Studio?Code錯(cuò)誤Cannot?build?and?debug?because?the及分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
C++ 中回調(diào)函數(shù)詳解及簡(jiǎn)單實(shí)例
這篇文章主要介紹了C++ 中回調(diào)函數(shù)詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-06-06
C++中類(lèi)的構(gòu)造函數(shù)初始值列表解讀
這篇文章主要介紹了C++中類(lèi)的構(gòu)造函數(shù)初始值列表,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
VsCode搭建C語(yǔ)言運(yùn)行環(huán)境詳細(xì)過(guò)程及終端亂碼問(wèn)題解決方案
這篇文章主要介紹了VsCode搭建C語(yǔ)言運(yùn)行環(huán)境以及終端亂碼問(wèn)題解決,在VsCode中搭建C/C++運(yùn)行環(huán)境需要先安裝幾個(gè)插件,具體插件文中給大家詳細(xì)介紹,需要的朋友可以參考下2022-12-12
C++中string轉(zhuǎn)換為char*類(lèi)型返回后亂碼問(wèn)題解決
這篇文章主要介紹了C++中string轉(zhuǎn)換為char*類(lèi)型返回后亂碼問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
VC實(shí)現(xiàn)讓關(guān)閉按鈕成灰色不可用的方法
這篇文章主要介紹了VC實(shí)現(xiàn)讓關(guān)閉按鈕成灰色不可用的方法,比較實(shí)用的一個(gè)特殊功能,需要的朋友可以參考下2014-08-08

