指標
語法格式:資料型別符 *指標變數名
常見術語:
/*
指標變數和其他型別的變數一樣,其初始值是不可知的,因此使用前要對他進行賦值。也就是乙個指標變數要指向程式中某乙個已知變數
*/int *p = &a; // &a表示的是a變數的位址
int *p = null; // 指標初始化為null(他是系統定義的,值為0),表示空指標
/*注意問題:
1).指標變數定義後,若不賦值,其值是不確定的,此時不可以使用該指標,如果強行使用他,則可能會引起系統崩潰
2).將指標變數賦值為null後與未對指標變數進行賦值,意義是不同的
3).不能將乙個非零的整數(或任何其他非位址型別的資料)賦給乙個指標變數,如int *p = 1000;
但是int *p = 0是合法的,他等價於int *p = null;
*/
// 1. 函式的值傳遞,無法通過形參來改變實參的值,在棧區內另外開闢了空間;
#includeusing namespace std;
void swap(int a, int b)
int main()
// 利用指標進行函式傳參
#includeusing namespace std;
void swap(int *a, int *b)
int main()
常量和指標:
敘述:即指向常量的指標,他不能修改常量的值,但可以指向其他常量和變數
int a = 1;
const *p = &a;
// 不能修改常量的值,但可以指向其他常量和變數
// 假設首先p指向a變數,其中a = 2,此時p是指向常量的指標
// 但是p可以另外指向b = 3和c = 4變數
敘述:該指標是常量,不能指向其他變數,但是可以改變指向變數的值
// 不能指向其他變數,但是可以改變指向變數的值
// 假設首先p指向a變數,其中a = 2,此時p指標是常量
// 但是p可以指向的變數名可以換成b或者c,但是值永遠是2
敘述:前兩者結合,既不能改變指標的值,又不能改變指向指標的值
函式指標
格式:資料型別 (*函式名)(資料型別 變數名)
結構體指標
#includeusing namespace std;
struct mystruct ;
// 宣告了結構物件ss,並把ss的成員初始化為20,30,40
struct mystruct ss = ;
// 宣告了乙個指標結構物件ss的指標,他的型別是mystruct*
struct mystruct *p = &ss;
// 第一種訪問變數
p -> a;
p -> b;
p -> c;
// 第二種訪問變數(不正規方法)
// 將結構體變成陣列,假設定義乙個陣列arr(陣列本身也是乙個指標)
int main() ;
int* p = arr; // 陣列名表示的是陣列第乙個值的位址名
// 用此方法來取陣列的值
cout << *p << endl;
cout << *(p+1) << endl;
cout << *(p+2) << endl;
system("pause");
return 0;
/* 所有的c/c++編譯器在排列陣列的單元時,總是把各個 陣列單元存放在連續的儲存區內,單元和單元之間沒有空隙,但在存放結構物件的各個成員的時,在某種編譯環境下,可能會需要字對齊或雙字對齊或者是別的什麼對齊,需要在相鄰的兩個成員之間加若干個"填充位元組",這就導致各個成員之間可能會有若干個位元組的空隙
*/
陣列指標
具體詳解可見
暫時沒有看嘿嘿嘿,後續補上
指標和引用的關係
such as
int a = 0;
int c = 2;
int &b = a;
b = 10;
引用實際上就是乙個指標常量!!!!!!!!
int &b = a // 這和int *const b = &a等價
// 屬性:該指標是常量,不能指向其他變數,但是可以改變指向變數的值,不能腳踏兩條船
引用能簡化形式引數
#includeusing namespace std;
void swap(int &x, int &y); // 宣告函式
int main()
void swap(int &x, int &y)
swap的函式底層
void swap(int *const x, int * const y)
不用引用
#includeusing namespace std;
void swap(int *x, int *y); // 宣告函式
int main()
void swap(int *x, int *y)
so?!
/*
在swap(a, b)中我們傳入的a和b,而不是&s,因為在引用裡面,我們寫的s其實是上是&s,不過在編譯階段編譯器偷偷換掉了,所以我們用引用&p來接收。
建立自解壓格式的exe檔案
選擇資料夾裡所有的檔案,右鍵選擇 新增到壓縮檔案 在常規裡勾選壓縮後刪除原始檔和建立自解壓格式壓縮檔案.3.在高階那單擊自解壓選項.4.常規裡設定解壓的路徑 5.在設定這裡輸入解壓後執行的路徑,你就輸入你這檔案存放的目錄.ppstream.exe就是軟體的主執行檔案.6.模式裡,安靜模式選擇 全部隱...
emc的4道面試題自解
1.int main 問 共建立了多少程序?這道題我第乙個映像就是短路求值,然後又想到了幾何級數,以及fork函式,fork後還有fork 我的答案是20 1 19。前邊的20是程序總數,後邊 1是建立程序數 第乙個fork完後共用2個程序 id 1,id 2 第二個fork,當返回值為0時,即子程...
c 指標的指標和指標的引用
當我們把乙個指標做為引數傳乙個方法時,其實是把指標的複本傳遞給了方法,也可以說傳遞指標是指標的值傳遞。如果我們在方法內部修改指標會出現問題,在方法裡做修改只是修改的指標的copy而不是指標本身,原來的指標還保留著原來 的值。我們用下邊的 說明一下問題 輸出的是兩個2 展示一下使用指標的指標做為引數 ...