原创 gets 和 scanf 的區別

gets可以接收含空格的字符串。而scanf遇到tab,空格,回車即結束! (在我看來,scanf用於數字的輸入,而gets用於字符串的輸入)

原创 進程和線程的區別

1、進程——資源分配的最小單位,線程——程序執行的最小單位。 2、一個線程只能屬於一個進程,但是一個進程可以擁有多個線程。多線程處理就是允許一個進程中在同一時刻執行多個任務。 3、線程是一種輕量級的進程,與進程相比,線程給操作系統帶來側創

原创 Mysql多表聯查

表aa,存放 id和name,表bb存放id和salary,如何根據name查到salary? select bb.salary from bb inner join aa on aa.id = bb.id where aa.nam

原创 C++面向對象的三個基本特徵

面向對象的三個基本特徵 (1)封裝:將客觀事物抽象成類,每個類對自身的數據和方法實行protection(private, protected,public) (2) 繼承:廣義的繼承有三種實現形式:實現繼承(指使用基類的屬性和方法而無

原创 關於網絡編程

網絡的體系結構 網絡採用分而治之的方法設計,將網絡的功能劃分爲不同的模塊,以分層的形式有機組合在一起。 每層實現不同的功能,其內部實現方法對外部其他層次來說是透明的。每層向上層提供服務,同時使用下層提供的服務。 網絡體系結構即指網絡的層次

原创 max=(a>b)?a:b;我個人很少用,但是感覺逼格很高,可以常用

max=(a>b)?a:b; 等效於if(a>b){ max=a;}else{ max=b;}

原创 數組和鏈表的區別:

1. 內存:數組在內存中是一塊連續的區域。而鏈表可以存在任何地方,不要求連續。 2. 空間:數組需要預留空間,不方便拓展,鏈表不需要,只需給指針分配空間,大小不用自己定義,數據隨意增刪。 3. 插入和刪除效率:數組插入(刪除),此位置後面

原创 遞歸實現字符串逆序輸出

#include <iostream> #include <string> using namespace std; char* func(char *a,int left,int right) { if (left>=right)

原创 函數回調和函數指針

回調函數就是一個通過函數指針調用的函數。如果你把函數的指針(地址)作爲參數傳遞給另一個函數,當這個指針被用來調用其所指向的函數時,我們就說這是回調函數。回調函數不是由該函數的實現方直接調用,而是在特定的事件或條件發生時由另外的一方調用的,

原创 const與#define 相比,有何優點?

const作用:定義常量、修飾函數參數、修飾函數返回值三個作用。被Const修飾的東西都受到強制保護,可以預防意外的變動,能提高程序的健壯性。   優點: 1) const 常量有數據類型,而宏常量沒有數據類型。編譯器可以對前者進行類型安

原创 QT調用當前時間

QT下,要想獲取當前時間,需使用QDateTime類 QDateTime current_date_time =QDateTime::currentDateTime(); QString current_date =current_dat

原创 數據庫基本操作---MySQL

1. 增: 基本形式: alter table 表名 add 列名 列數據類型 [after 插入位置]; 2. 刪:delete from 表名稱 where 刪除條件; 3. 改: update 表名稱 set 列名稱=新值 wher

原创 遞歸求階乘

先看看下面這段程序 #include <stdio.h>   #include <stdlib.h>        int main()   {       int fac(int n);       int n,y;       sc

原创 運算符優先級的比較

1 .設 int  x = 1;y = 1;表達式(!x||y--)的值爲 1。 答:因爲自減運算符 -- 的優先級與邏輯非運算符!的優先級相同,且都大於邏輯或運算符 | | 。所以 !x = 0; y-- = 1;0||1 = 1; (

原创 基本的字符串處理

我着重看下seven,string seven(&five[6],&five[10]);這是seven的初始化語句(five【】=all's well that ends");運行結果是“well”,不難看出,string six(all