原创 拷貝構造函數與析構順序

調用複製構造函數的時機: 1,用一個已有對象初始化另一個對象  void main() { Test88 t1; Test88 t3; //第一種場景 //1賦值構造函數和=操作是兩個不同的概念 //2  賦值構造函數 copy構造函數

原创 static靜態變量分析

1,靜態局部變量,在全局區分配內存,生命週期是整個程序運行時間,作用域是該局部作用域 //static int a  = 10; 把a變成一個狀態變量 //a初始化的時候10 ,只初始化一次,之後static int a  = 10;不再

原创 類模板遇上友元函數

#include <iostream> using namespace std;   template<class T> class Complex {  public: Complex( T r =0, T i =0 ); Comp

原创 內存四區與指針的分析

數據類型:數據類型是固定內存大小的別名。 int a[10]={}; a的大小等於&a,但a+1的大小不等於&a+1,原因是數據類型不一樣 變量:變量是內存空間的標號 內存四區 堆區,棧區,全局(靜態)和常量區,代碼區

原创 C語言文件操作函數大全

   表頭文件 #include<stdio.h>    定義函數 void clearerr(FILE * stream);    函數說明 clearerr()清除參數stream指定的文件流所使用的錯誤旗標。    返回值  

原创 c與c++不同的總結

1, 在c語言中 register修飾的變量 不能取地址,C++中可以取得register變量的地址,C++編譯器做了優化,C++編譯器發現程序中需要取register變量的地址時,register對變量的聲明變得無效 2, C語言中多個

原创 Linux c操作mysql數據庫

【啓動mysql服務】 Service mysql start 【啓動mysql登陸】 mysql -u root –p   添加一個用戶 Create database db1 character set utf8; grant all

原创 二級指針

第一種: char *ArrayStr[] = {"ccccc", "aaaa", "bbbb","11111"}; 第二種: char myArray[10][30] =  {"ccccc", "aaaa", "bbbb"

原创 數組指針的分析

int main01() { int i = 0; //a代表數組首元素的地址,不是整個數組的地址 //&a表示整個數組的地址 &a a代表的數據類型不一樣 //&a 數組類型 int[10] //a 數組首元素的類型 int a[1

原创 C++引用

一;普通引用 語法:類型+&+變量名= 被引用變量名 在C++內部,引用是一個常量指針,Type & name = Type* const name,因此它的分配內存數與指針一樣大 引用本質就是對變量取地址 int my

原创 結構體使用分析

//結構體分配內存是四個字節一行 struct Teacher{ char name[62]; //64 int age;//4 char c1; char c2; };  大小爲72 struct Teacher{ char c

原创 多維數組

//1 不管是幾維數組,都是線性存儲的。所以會存在多維數組做函數參數,退化問題 //2 多維數組做函數參數 二維數組,能勉強表達出來。但是三維數組,四維數組,,就表達不出來了。 //結論:指針做函數參數,有效內存維數,只到2級。。如果你

原创 構造函數初始化

類的成員不允許設定初始值! private: int m_a = 10;   //錯誤 ===================================================================== class

原创 數組與字符串

//初始化數組有兩種方法 //1 不指定長度 char buf[] = {'a', 'b', 'c'}; //buf是個指針 是個常量指針  //2 指定長度 char buf2[10] = {'a', 'b', 'c'}; //3 字

原创 Const和#define

C++中的const類似於宏定義 Const int c = 5 ≈#define c 5 C++中的常量與宏定義不同 Const常量有編譯器處理,提供類型檢查和作用域檢查 #define預處理器處理,只是單純的文本替換 例: Void