原创 拷貝構造函數與析構順序
調用複製構造函數的時機: 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