Time of Update: 2017-01-19
最近在補看《C++ Primer Plus》第六版,這的確是本好書,其中關於智能指標的章節解析的非常清晰,一解我以前的多處困惑。C++面試過程中,很多面試官都喜歡問智能指標相關的問題,比如你知道哪些智能指標?shared_ptr的設計原理是什嗎?如果讓你自己設計一個智能指標,你如何完成?等等……。而且在看開源的C++項目時,也能隨處看到智能指標的影子。這說明智能指標不僅是面試官愛問的題材,更是非常有實用價值。C++通過一對運算子 new 和 delete
Time of Update: 2017-01-19
1、定義常量(1)const修飾變數,以下兩種定義形式在本質上是一樣的。它的含義是:const修飾的類型為TYPE的變數value是不可變的。 TYPE const ValueName = value; const TYPE ValueName = value;(2)將const改為外部串連,作用於擴大至全域,編譯時間會分配記憶體,並且可以不進行初始化,僅僅作為聲明,編譯器認為在程式其他地方進行了定義. extend const int ValueName =
Time of Update: 2017-01-19
運行之前需要做一些配置: 1.下載PTHREAD的WINDOWS開發包 pthreads-w32-2-4-0-release.exe(任何一個版本均可) http://sourceware.org/pthreads-win32/ ,解壓到一個目錄。 2.找到include和lib檔案夾,下面分別把它們添加到VC++6.0的標頭檔路徑和靜態連結庫路徑下面: a).Tools->Options,選擇Directory頁面,然後在Show
Time of Update: 2017-01-19
什麼是socket 你經常聽到人們談論著 “socket”,或許你還不知道它的確切含義。現在讓我告訴你:它是使用 標準Unix 檔案描述符 (file descriptor) 和其它程式通訊的方式。什嗎?你也許聽到一些Unix高手(hacker)這樣說過:“呀,Unix中的一切就是檔案!”那個傢伙也許正在說到一個事實:Unix 程式在執行任何形式的 I/O 的時候,程式是在讀或者寫一個檔案描述符。一個檔案描述符只是一個和開啟的檔案相關聯的整數。但是(注意後面的話),這個檔案可能是一個網路連接,
Time of Update: 2017-01-19
首先來分別看一下,指標數組的一個小例子:#include <stdio.h> #include <string.h> int lookup_keyword(const char*key, const char* table[], const int size) { int ret = -1; int i = 0; for(i=0; i<size; i++) { if (strcmp(key, table[i]) == 0) {
Time of Update: 2017-01-19
我們知道在C++裡有專門的bool類型,用來表示真或假。但是在C語言裡沒有這樣的類型(至少我是一直這麼認為的),運算式的值0為假,非0為真。所以條件判斷語句( if(…)、while(…) )非常靈活,甚至一個指標類型都可以是條件運算式。 為了使程式更清晰,我們常常會給出如下的宏定義: typedef int BOOL; #define TRUE 1 #define FALSE 0 這是最常見的寫法,能被任何C語言編譯器認可。 今天我在一段程式裡看見這麼一行 #include
Time of Update: 2017-01-19
因為C語言不檢查數組越界,而數組又是我們經常用的資料結構之一,所以程式中經常會遇到數組越界的情況,並且後果輕者讀寫資料不對,重者程式crash。下面我們來分析一下數組越界的情況:1) 堆中的數組越界因為堆是我們自己分配的,如果越界,那麼會把堆中其他空間的資料給寫掉,或讀取了其他空間的資料,這樣就會導致其他變數的資料變得不對,如果是一個指標的話,那麼有可能會引起crash2)
Time of Update: 2017-01-19
對於一個C語言程式而言,記憶體空間主要由五個部分組成程式碼片段(.text)、資料區段(.data)、BSS段(.bss),堆和棧組成,其中程式碼片段,資料區段和BSS段是編譯的時候由編譯器分配的,而堆和 棧是程式啟動並執行時候由系統分配的。布局如下在上圖中,由編譯器分配的地址空間都是在串連的時候分配的,而運行時分配的空間是在程式運行時由系統分配的BSS段:BSS段(bss segment)通常是指用來存放程式中未初始化的全域變數和靜態變數
Time of Update: 2017-01-19
c語言標準1978年,丹尼斯·裡奇(Dennis Ritchie)和Brian Kernighan合作出版了《C程式設計語言》的第一版。書中介紹的C語言標準也被C語言程式設計師稱作“K&R C”,第二版的書中也包含了一些ANSI C的標準。K&R C主要介紹了以下特色:結構(struct)類型長整數(long int)類型不帶正負號的整數(unsigned int)類型把運算子=+和=-改為+=和-=。因為=+和=-會使得編譯器不知道使用者要處理i = +10還是i =-
Time of Update: 2017-01-19
咱們先看第一個 i被賦值0,i++(後++)並沒有輸出1。 現在i被賦值0,++i,也就是前++後輸出了1。 i被賦值0,前++ 的話,就是自身先加1 就自身賦值變成1 ,後面的i的值都是1了。 i被賦值0,先是後++,後++意思是 自己先被賦值,賦值完後等本語句結束後就自己加1了。第一個printf輸出的是i開始被賦的值0, 第一個printf之後就是一個(;)分號,分號意思是這個語句的結束。
Time of Update: 2017-01-19
想瞭解Java中static關鍵字的作用和用法詳細介紹,請點擊此處瞭解詳情。在C語言中,static的字面意思很容易把我們匯入歧途,其實它的作用有三條,分別是:一是隱藏功能,對於static修飾的函數和全域變數而言二是保持持久性功能,對於static修飾的局部變數而言。三是因為存放在靜態區,全域和局部的static修飾的變數,都預設初始化為0下面我逐一給大家介紹:(1)先來介紹它的第一條也是最重要的一條:隱藏。當我們同時編譯多個檔案時,所有未加static首碼的全域變數和函數都具有全域可見度。為
Time of Update: 2017-01-19
我們最經常遇到的驗證,就是電子郵件地址驗證。網站上常見。各種網頁指令碼也都常用“Regex”(regular
Time of Update: 2017-01-19
安裝OPENMPI由於是實驗,也不進行多機的配置了,只在虛擬機器裡安裝吧。多個機器的配置可以參考此文最簡單的方法,apt安裝sudo apt-get install libcr-dev mpich2 mpich2-doc測試hello.c/* C Example */#include <mpi.h>#include <stdio.h>int main (int argc, char* argv[]){ int rank, size; MPI_Init (&argc,
Time of Update: 2017-01-19
C++程式設計語言中的string應用方式多樣化,每一種應用方式都能協助我們提實現特定的功能需求。在這裡我們將會為大家詳細介紹一下其中一個比較重要的用法,有關C++ replace()函數的應用方式。basic_string::max_size C++ replace()函數返回string 能放的最大元素個數。(不同於capacity)size _ type max _ size( ) const; basic_string <char>::size_type cap, max;
Time of Update: 2017-01-19
這是對pthread線程的一個簡單應用1. 實現了線程池的概念,線程可以重複使用。2. 對訊號量,互斥鎖等進行封裝,業務處理函數中只需寫和業務相關的代碼。3.
Time of Update: 2017-01-19
c/c++實現擷取網域名稱的IP地址// GetHostIP.cpp : 定義控制台應用程式的進入點。// #include "stdafx.h" #include <winsock2.h>#include <ws2tcpip.h>#include <stdio.h>#include <windows.h>#pragma comment(lib, "ws2_32.lib") int main(int argc, char **argv){ //
Time of Update: 2017-01-19
本是一個再簡單不了的功能,然後只是冒泡排序。可是我在互動輸入數列的時候,只用空格隔開然後斷行符號,如果不限定數的個數,用scanf並不能完成這個任務,他迴圈擷取,到最後不能判斷擷取結束,而只能繼續等待輸入。這個時候我自訂一個函數,擷取緩衝區中的數(空格分隔),如果輸入結束就返回一個特定的值,這個函數是用getchar迴圈嵌套實現的。本人新手,只能弄出這方法。歡迎各位大神指導。maopao-complex.c//比較複雜的數組接收方法,然後從大到小排序。VC環境#include
Time of Update: 2017-01-19
新接觸C語言,如何進行C語言開發環境的搭建值得思考並整理一、在Windows平台配置GNU環境GNU http://www.gnu.org/選擇以下GNU環境下載安裝到C盤: 1.MinGw 官網下載安裝 http://www.mingw.org/ 本站高速下載安裝 http://www.jb5
Time of Update: 2017-01-19
這就是楊輝三角,也叫賈憲三角。這於我們現在的學習聯絡最緊密的是2項式乘方展開式的係數規律。如圖,在賈憲三角中,第3行的第三個數恰好對應著兩數和的平方公式依次下去。
Time of Update: 2017-01-19
分析以下一段代碼:/*=======sum.h=========*/#ifndef SUM_H#define SUM_H#include <stdio.h>int sum(int a,int b);#endif;/*=======sum.c=========*/#include "sum.h"int sum(int a,int b){int c=a+b;return c;}/*====main.cpp======*/#include "sum.h"void mian(){cout &