原创 sizeof淺析——求結構體大小

運算符sizeof可以計算出給定類型的大小,對於32位系統來說,sizeof(char) = 1; sizeof(int) = 4。基本數據類型的大小很好計算,我們來看一下如何計算構造數據類型的大小。               C語言中

原创 string.h常用函數實現未完待續

其中assert函數在以下頭文件中 #include <assert.h> 原型:char* strcpy(char* dest, const char *src); 說明:把從src地址開始且含有NULL結束符的字符串複製到以dest

原创 局部變量作爲返回值

看看下面的程序的輸出: #include char *returnStr() { char *p="hello world!"; return p; } int main() { char *str;

原创 Late Not Bad 不帶感情的學習技術 char [] 到 LPWSTR轉換的一個具體應用

背景: 1.       Unicode環境 2. 使用了CTreeCtrl控件 TV_ITEM類型(item) item.pszText變量    問題: 定義了一個char text[31]數組,用來接收選中的TV_ITEM i

原创 字符編碼筆記:ASCII,Unicode和UTF-8

作者: 阮一峯 日期: 2007年10月28日 今天中午,我突然想搞清楚Unicode和UTF-8之間的關係,於是就開始在網上查資料。 結果,這個問題比我想象的複雜,從午飯後一直看到晚上9點,纔算初步搞清楚。 下面就是我的筆記,主要

原创 C 風格字符串,C++string類,MFC,CString類的區別。

字符串,顧名思義是由字符組成的字符串,在標準C,標準C++,MFC中 字符串這一功能的實現是不相同的,C++完全兼容了C。 1.  標準C中的字符串    在標準C中沒有string這樣的數據類型,C中的字符串是有char類型的字符數組或

原创 什麼是複合類型

C++中,什麼是複合類型? 剛開始,還以爲自定義的類是複合類型。查了C++ primer才知道複合類型不是類。 在C++中類型大致可以分爲三種 一、內置類型 如int, char, float, unsigned等。內置類型是最基本的類型

原创 C++ 拷貝構造函數 賦值構造函數

C++ 拷貝構造函數 賦值構造函數 拷貝構造函數和賦值構造函數的異同 由於並非所有的對象都會使用拷貝構造函數和賦值函數,程序員可能對這兩個函數有些輕視。請先記住以下的警告,在閱讀正文時就會多心:如果不主動編寫拷貝構造函數和賦值函數,編譯

原创 void和void*詳解

void關鍵字的使用規則:              1. 如果函數沒有返回值,那麼應聲明爲void類型;              2. 如果函數

原创 深入理解c語言——‘\0’ ,‘0’, “0” ,0之間的區別

看來基礎還是很重要的,基礎不紮實就難以學好c語言,就別說寫出高質量的c語言代碼了。今天,我就被這個問題折磨的不行了,哈哈,不過現在終於明白了‘\0’

原创 函數後面加const

類的成員函數後面加 const,表明這個函數不會對這個類對象的數據成員(準確地說是非靜態數據成員)作任何改變。 在設計類的時候,一個原則就是對於不

原创 從 Qt 的 delete 說開來

在C++中學習過程中,我們都知道: delete 和 new 必須 配對使用(一 一對應):delete少了,則內存泄露,多了麻煩更大。 Qt作爲C++的庫,顯然是不會違背C++的前述原則的。可是: 在Qt中,我們很多時候都瘋狂地用ne

原创 C++默認參數與函數重載 注意事項

一、默認參數 在C++中,可以爲參數指定默認值。在函數調用時沒有指定與形參相對應的實參時, 就自動使用默認參數。 默認參數的語法與使用:(1)在函數聲明或定義時,直接對參數賦值。這就是默認參數; (2)在函數調用時,省略部分或全部參數。這

原创 c/c++中delete/free 指針後,設置p=NULL的好處

從簡單的代碼開始: int* p = new int; *p = 5; delete p; p = NULL; Line4把釋放了的指針立即設置爲null,我們一般認識到是防止野指針的產生,從而導致程序

原创 lua中pairs 和 ipairs區別

標準庫提供了集中迭代器,包括迭代文件每行的(io.lines),迭代table元素的(pairs),迭代數組元素的(ipairs),迭代字符串中單詞的  (string.gmatch)等等。LUA手冊中對與pairs,ipairs