原创 recv的返回值

在socket通信中,服務端和客戶端連接好了以後就會有發送和接收,那麼怎麼在發送和接收過程知道連接是否正常呢, int recv(   __in          SOCKET s,   __out         char* buf,

原创 賦值=操作符和指針

1.賦值操作符“=”是具有右結合性的,不同於其他的操作符是左結合性。 例如: int a;double  b; b = a = 3.5;//這時從a開始賦值所以a = 3;然後b = a,所以b = 3; a = b = 3.5;//這時

原创 用遞歸和while循環方式求出兩個數的最大公因數

遞歸法:  int GetCommonFactor(int a, int b) {      if(b == 0)//將b=0作爲結束的條件     {           return a;     }      int r = a%b

原创 new/delete和對數組的重命名

一。在c++中常常會用到new來開闢堆中內存,但是又經常存在:int * p = new int;int *p = new int[size];這時存在new和new[],那他們的不同的是什麼: 1.用new開闢的內存只有單個,所以只需要

原创 巧記操作符的優先級

只要記住:操作符是分爲一元操作符(像*和&等),二元操作符(+,-,*等),三元操作符,但是三元的比較少用,只需要記住一元操作符是優先級最高的,其次是乘和除,然後是二元操作符。 點贊 收藏 分享 文章

原创 for循環中++i跟i++有區別嗎

在for循環中總是有人疑惑爲什麼i++和++i沒有任何的區別呢 原因在此: 因爲for循環中,第二個;以後的語句是循環結束後執行的,相當於 for(int i = 0; i<10; i++)相當於 for(int i = 0; i<10;

原创 SQL語句-實現對數據中兩張表的訪問

例:有A = {1,2,3,4,5}和b = {4,5,6};A和B是兩張表,它們有相同的列爲ld。 1.求出A中有的所有id值,除了B中有的:select * from A where A.id not in(select id fro

原创 前置操作(++)和後置操作(++)區別

通俗一點:前置是先加後用,後置是先用後加 例: int i =100, j; j = ++i;//這時在分號之前是用的加過之後的結果來賦值即爲101,所以j = 101; j = i++;//同樣分號之前i並沒有++,是先使用後即在分號之

原创 類模板的三種友元聲明

普通非模板類或友元聲明,將友元關係授予明確指定的類或函數。類模板或函數模板的友元聲明,授予對友元所有實例的訪問權。值授予對類模板或函數模板的特定實例的訪問權的友元聲明。

原创 namespace的使用

在使用namespace中,相同名字的namespace在不同的文件中,系統會默認爲兩個文件中的namespace是同一個命名空間。

原创 c++STL的迭代器

針對迭代器的size_type: vector<int> vec; vector::size_type實際上是一個unsigned int的類型,所以在對迭代器用下標訪問的時候注意不要在它等於0的時候再進行--操作,因爲這時候的--會使得

原创 我的c++積累一部分

map只允許一個鍵對應一個值,而multimap是可以一個鍵對應多個值的。 所以要得到multimap的全部的值,需要count得到個數,然後find找到相應的位置。 set也只允許一個鍵對應一個值,而multiset是可以一個鍵對應多個

原创 typedef函數指針

typedef對一個函數進行重命名,就是給一個函數類型去一個別名:typedef int (*pfunc)(int m, int n);int myfun(int m, int n){<span styl

原创 對函數,文件度量因子的總結

函數的度量因子: 函數的圈複雜度:初始值爲1,只要遇到if,while,for等等語句複雜度加1,不論是分支還是內嵌都是加1.可執行的代碼行:這個是源代碼經過格式化之後的代碼行,除去聲明語句之後。所謂的格式例如:int a,b;處理之後

原创 define宏

一個define宏在,程序預處理的階段就會展開的,所以針對一個全局變量將其定義爲宏,那麼在函數處理過程會將宏展開,從而函數調用的就是全局變量。