Time of Update: 2018-12-05
[轉]C++中const用法淺析看到const 關鍵字,很多程式員想到的可能是const 常量,這可有點象踩到陷井上還不知道自己危險了。讀讀以下文字會使你對c++中的const有一個全面的認識。const 是C++中常用的類型修飾符,有某些微妙的應用場合,如果沒有搞清本源,則錯誤在所難免。本篇中將對const進行辨析。溯其本源,究其實質,希望能對大家理解const有所協助,根據思維的承接關係,分為如下幾個部分進行闡述。C++中為什麼會引入const C++的提出者當初是基於什麼樣的目的引入(
Time of Update: 2018-12-05
一篇講對齊比較好的文章,轉貼如下:大致標註一二:1.記憶體對齊:電腦系統對基本類型資料在記憶體中存放的位置有限制,它們會要求這些資料的首地址的值是某個數k(通常它為4或8)的倍數k則被稱為該資料類型的對齊模數(alignment modulus)2.不同編譯器預設的最大對齊位元組數是不一樣的,比如vc==8,gcc==4,可以通過#progma pack (n)來修改,剖析器的時候要注意編譯器的區別3.一個結構體裡面,按照alignment
Time of Update: 2018-12-05
函數名: scanf 功 能: 執行格式化輸入 用 法: int scanf(char *format[,argument,...]);scanf()函數是通用終端格式化輸入函數,它從標準輸入裝置(鍵盤) 讀取輸入的資訊。可以讀入任何固有類型的資料並自動把數值變換成適當的機內格式。其調用格式為: scanf("<格式化字串>",<地址表>);scanf()函數返回成功賦值的資料項目數,出錯時則返回EOF。其控制串由三類字元構成:1。格式化說明符;2。空白符;3
Time of Update: 2018-12-05
大家都知道java和C#有for each這個命令吧,這個命令十分好用for each(單個元素 it in 容器){每個元素的操作;}昨天看了boost庫的lambda和一些部落格,瞬間毀掉我對C++的看法,原來用了lambda,這些功能可以輕鬆實現!!比如顯示vector容器vec的資料,然後加上4,再全部顯示,正規代碼這樣寫:std::copy(vec.begin(), vec.end(), ostream_iterator<int>(std::cout , "
Time of Update: 2018-12-05
字元字面值一般是用一對單引號來表示。char類型一般就是用字元字面值來初始化、賦值。由於char類型的是單位元組長度,當給char類型的變數用字元字面值賦值時,當單引號裡面的內容超過一個位元組時,系統會自動截取一個位元組的內容給char變數,忽略其他的位元組內容。比如char a='1234';c++會認為單引號裡的每一個數值都看做一個字元字面值,也就是說1 2 3 4各佔一個位元組,'1234'也就是一共佔4個位元組,然而char變數a只是佔一個位元組,初始化它的值卻有4個位元組,系統要從'1
Time of Update: 2018-12-05
經過一上午的努力,終於以偽分布式模式運行了C++版的MapReduce.下面逐一介紹這一過程一、先決條件 1. 在Linux系統上已安裝好hadoop 1.0.X版本(本人系統為CentOS5.5(64位系統),hadoop版本為1.0.3,其它系統有可能不同) 2. 瞭解hadoop基本概念二、步驟(如果已具備該步驟下的條件可以跳過該步驟) 1.修改$HADOOP_INSTALL/conf目錄下的三個檔案core-site.xml, hdfs-site.xml,
Time of Update: 2018-12-05
說明:以下內容部分引用互連網,找不到出處,但經過本人認真閱覽,如發現錯誤或不足,歡迎指正或補充,謝謝! 試題1:分別給出BOOL,int,float,指標變數 與“零值”比較的 if 語句(假設變數名為var) 解答: BOOL型變數:if(!var) int型變數: if(var==0) float型變數:const float EPSINON = 0.00001; if ((x >= - EPSINON) && (x <=
Time of Update: 2018-12-05
1.數學函數abs(x)cos(x)fabs(x)ceil(x) //求不小於x的最大整數floor(x) //求不大於x的最小整數log(x) //求x的自然對數log10(x) //求x的對數(低為10)pow(x, y)sin(x)sqrt(x)2.字元處理函數int isdigit( int c)int isalpha( int c)int isalnum( int c)//判斷c是否是一個數字或字母int islower( int c)int isupper( int
Time of Update: 2018-12-05
筆者在最近的項目中需要用JNI,調用C/C++編好的程式,由於此前對JNI不熟悉,在網上找了好多都是基於VC或者VS2008系列實現的,這樣為了實現一個簡單的調用,需要裝幾百兆的VC或者幾個G的VS很麻煩,由於此前我一直用的dev C++做C的開發(這個DEV很小巧,功能很強大,只是自動補全不友好),於是決定就採用DEV實現JNI的本地檔案的編譯:步驟如下:1.0 編寫java類public class My{ public native String hello(String arg);
Time of Update: 2018-12-05
很多C++書籍都鼓勵我們使用vector替換數組,使用string替換傳統的字串,我一直相信可以這麼做,而且這麼做了以後,會減少工作量,提高效率。知道是一回事,實際操作起來是一回事,每次使用string的時候總會有這樣那樣的問題。我在想,之所以Accelerated
Time of Update: 2018-12-05
這篇文章主要討論C語言細節問題。在找一份工作的時候,語言細節占的比例非常小,之前看某個貼著討論,估計語言細節在面試中,佔了10%的比重都不到,那為什麼還要研究C語言的細節呢,我覺得有三個原因促使我總結這篇文章:1. 總會有些面試官喜歡問這樣的問題,尤其是偏底層開發的面試官。2. 總有有那麼兩個2B同學、同事,搞兩個很偏的知識點來考你,把你難倒以後,他就樂呵呵的滿足了。3. 對C語言有更加鞏固的基礎,增加信心,在代碼出錯時,可以非常肯定哪裡沒有錯,而把精力花在真正的問題上。1)
Time of Update: 2018-12-05
C語言處理字串極為不便,幸好庫函數提供了還算豐富的處理字串的函數。有一些函數我們平時不大用的到,不過瞭解一下總是好的,知道有這麼個東西,下次要用的時候再去查一下手冊就好了。 這裡介紹的函數主要有:strcat, strcmp, strcasecmp, strcpy, strdup, strlen, strchr, strrchr, strstr, strpbrk, strspn, strcspn, strtok.
Time of Update: 2018-12-05
#include <stdlib.h>#include <stdio.h>#define MAX_WORD 128;#define MAX_LEN 100typedef struct _Key{ char* keyWord; int cout;}KeyWord; //初始化 KeyWord keyTab[]={ "auto",0, "break",0, "case",0, "char",0, "const",0,
Time of Update: 2018-12-05
#include <stdarg.h>//類比printf()函數int print(char* formatStr,...){ //變參列表 va_list argPtrLs; //將指標指向第一個參數 va_start(argPtrLs,formatStr); int intValue;//整形值 double dbValue;//雙精確度值 char *strValue;//字串 char*
Time of Update: 2018-12-05
今天在CSDN上看到一道C語言的字串複製面試題,題目如下:要求逆序輸出輸入的字串,並且不能用第三方變數,函數的原型是 char* strNCopy(const char* source,char* dest)要求不用庫函數,根據要求我寫了這樣一段程式:#include <stdio.h>#include <stdlib.h>char* strNCopy(const char* source,char* dest);int main(int argc, char
Time of Update: 2018-12-05
關於《糾結的N皇后問題》中數組越界導致的sum出現非正常的變化這個問題,繼而引發出關於記憶體到底是如何被分配的疑問,今天早上便著手進行探索,當然其中借鑒了廣大網友的總結,其中包括birdzb,NEO等牛人關於這方面的討論。特別是看到一些討論,感觸頗深啊http://www.programfan.com/club/showtxt.asp?id=191048。怎麼說呢,我還是覺得研究一下是有必要的,但要注意適可而止。 知識儲備:1. 記憶體的分區:代碼區,資料區,堆,棧。
Time of Update: 2018-12-05
/*-----------------------------** For 排序演算法學習* IDE DEV-CPP4.9.2* Auhtor Czp* Date 2012/10/17*------------------------------*/#include <stdlib.h>#include <stdio.h>//插入排序void insertSort(int* arr,size_t n) { int
Time of Update: 2018-12-05
由於出現的單詞不確定,所以用二叉樹實現://TreeNode.htypedef struct _TreeNode{ int count; //出現的次數 char* word;//單詞本身 struct _TreeNode* left; struct _TreeNode* right; }TreeNode;//給TreeNode分配記憶體 TreeNode* talloc(void){ return
Time of Update: 2018-12-05
幾乎可以肯定80%的程式員都用過cat程式,它是Linux中用來串連多個檔案的命令,自己類比寫這樣一個小程式,將會是一次不錯的學習,Cat支援有參數和無參數兩種方式,如果沒有參數,將使用標準輸入和輸出實現,如果有參數將會把參數裡指定的檔案連結並在標準顯示上顯示,那麼我第一步是做什麼呢?當然是實現從一個指定的輸入資料流讀取字元顯示在指定的輸出資料流上,代碼大致如下://從src中複製內容到destint fileCopy(FILE *src,FILE *dest){ int c;
Time of Update: 2018-12-05
//ArrayList.h/*-----------------------------** For 演算法資料結構* IDE DEV-CPP4.9.2* Auhtor Czp* Date 2012/11/4*------------------------------*///防止重複匯入 #ifndef MY_ARRAY_LIST_H#define MY_ARRAY_LIST_H//如果C++裡調用,採用C編譯器 #ifdef __cplusplus