原创 strcpy()、memcpy()等的理解

strcpy(); 原型:extern char *strcpy(char *dest,char *src); 功能:把src所指由NULL結束的字符串複製到dest所指的數組中。 說明:src和dest所指內存區域不可以重疊且dest必

原创 二分查找學習札記

二分查找算法基本思想二分查找算法的前置條件是,一個已經排序好的序列(在本篇文章中爲了說明問題的方便,假設這個序列是升序排列的),這樣在查找所要查找的元素時,首先與序列中間的元素進行比較,如果大於這個元素,就在當前序列的後半部分繼續查找,如

原创 memset用法詳解

memset原型 void *memset(void *s,  int c, size_t n); memset:作用是在一段內存塊中填充某個給定的值,它對較大的結構體或數組進行清零操作的一種最快方法。 常見的三種錯誤 第一: 搞反了

原创 幾種常用排序算法總結

選擇排序、快速排序、希爾排序、堆排序不是穩定的排序算法,冒泡排序、插入排序、歸併排序和基數排序是穩定的排序算法。   冒泡法:  這是最原始,也是衆所周知的最慢的算法了。他的名字的由來因爲它的工作看來象是冒泡:  複雜度爲O(n*n)。當

原创 合併排序的c++實現

#include<iostream> using namespace std; const int N=10; template <class Type> class ArraySort { public: ArraySort(T

原创 C++中extern “C”含義深層探索

1.引言   C++語言的創建初衷是“a better C”,但是這並不意味着C++中類似C語言的全局變量和函數所採用的編譯和連接方式與C語言完全相同。作爲一種欲與C兼容的語言,C++保留了一部分過程式語言的特點(被世人稱爲“不徹底地面

原创 虛函數

1.首先看一下這段代碼吧: #include<iostream> using namespace std; class ClxBase { public: ClxBase() {}; ~ClxBase() {cout << "O

原创 網絡編程

sockets(套接字)編程有三種,流式套接字(SOCK_STREAM),數據報套接字(SOCK_DGRAM),原始套接字(SOCK_RAW);基於TCP的socket編程是採用的流式套接字(SOCK_STREAM)。基於UDP採用的數據

原创 c++面試

1.new、delete、malloc、free關係    delete會調用對象的析構函數,和new對應free只會釋放內存,new調用構造函數。malloc與free是C++/C語言的標準庫函數,new/delete是C++的運算符。

原创 理解虛基類、虛函數與純虛函數的概念

引言     一直以來都沒有寫過一篇關於概念性的文章,因爲我覺得這些概念性的東西書本上都有並且說的也很詳細寫來也無用,今天突發奇想想寫一寫,下面就和大家討論一下虛基類、虛函數與純虛函數,一看名字就讓人很容易覺得混亂。不過不要緊待看完本文後

原创 計算機類筆試題

1..寫出判斷ABCD四個表達式的是否正確, 若正確, 寫出經過表達式中 a的值(3分)int a = 4;(A)a += (a++); (B) a += (++a) ;(C) (a++) += a;(D) (++a) += (a++);

原创 字節對齊

寫出一個struct,然後sizeof,你會不會經常對結果感到奇怪?sizeof的結果往往都比你聲明的變量總長度要大,這是怎麼回事呢?講講字節對齊吧. /******************************分割線 如果體系結構是不

原创 幾種排序實現

#include<iostream> using namespace std; const int N=10; ////原地排序就是指不申請多餘的空間來進行的排序, ////就是在原來的排序數據中比較和交換的排序。 ////例如快速排序

原创 原碼、反碼和補碼

(1)原碼錶示法     原碼錶示法是機器數的一種簡單的表示法。其符號位用0表示正號,用1表示負號,數值一般用二進制形式表示。設有一數爲x,則原碼錶示可記作[x]原。     例如  X1= +1010110            

原创 進程和線程的區別

      進程和線程都是由操作系統所體會的程序運行的基本單元,系統利用該基本單元實現系統對應用的併發性。進程和線程的區別在於:       簡而言之,一個程序至少有一個進程,一個進程至少有一個線程.       線程的劃分尺度小於進程