指標的定義
int a =10;
// 指標定義的語法;資料型別 * 指標變數
int* p;
// 讓指標記錄變數a的位址
p =&a; cout <<
<<
&a << endl;
cout <<
"指標p為:"
<< p << endl;
使用指標
// 可以通過解引用的方式找到指標指向的記憶體
// 指標前加 * 代表解引用,找到指標指向的記憶體中的資料
*p =
1000
; cout <<
"a = "
<< a << endl;
cout <<
"*p = "
<<
*p << endl;
指標占用空間
cout <<
"sizeof (int *)"
<<
sizeof
(int*)
<< endl;
cout <<
"sizeof (float *)"
<<
sizeof
(float*)
<< endl;
cout <<
"sizeof (double *)"
<<
sizeof
(double*)
<< endl;
cout <<
"sizeof (char *)"
<<
sizeof
(char*)
<< endl;
空指標 記憶體編號為0-255系統占用記憶體
// 空指標
int* p3 =
null
;// cout << *p3 << endl; 報錯,記憶體編號為0-255系統占用記憶體,
// *p3 = 100; 報錯,不允許使用者訪問
野指標,指標指向非法的記憶體空間,沒有申請的記憶體空間是非法記憶體空間
int
* p4 =
(int*)
0x1100
;// 0x1100這個空間還沒有申請就訪問,會報錯
// cout << *p4 << endl;
結構體指標,結構體指標操作屬性寫法
stu-
>age
void
printstudent
(const student* stu)
const修飾位址或常量
int a =10;
int b =
10;
指標指向的值不能改,指標的指向可以改。eg:
const
int* p =
&a;// *p = 20; 錯誤,指標指向的值不能改
p =&b;
// 正確
指標的指向不可以改,指標指向的值可以改。eg:
int
*const p2 =
&a;// p2 = &b; // 錯誤
*p2 =
20;
指標的指向和指標指向的值 都不可以改
const
int*
const p3 =
&a;//*p3 = 100; 錯誤
//p3 = &b; 錯誤
指標運算元組
// 4. 指標和陣列
int arr=
;int
* p4 = arr;
cout <<
"第乙個元素:"
<< arr[0]
<< endl;
cout <<
"指標訪問的第乙個元素 "
<<
*p << endl;
for(
int i =
0; i <
5; i++
)
int
main()
for(
int i =
0; i <
10; i++
)delete
arr;
return0;
}
new生成的變數,其記憶體空間不會被釋放,直到視窗被關閉,即**
int
main()
資料型別 &別名 = 原名
int a =10;
int&b = a;
引用就是位址值不能修改的位址,必須初始化,初始化後不能更改,所以也是位址傳遞。
自動轉換為 int* const ref = &a;
void
func
(int
& ref)
intmain()
void
swap01
(int a,
int b)
void
swap02
(int
*a,int
*b)void
swap03
(int
&a,int
&b)
int
main()
區域性引用不能作為函式返回值,因為區域性引用在函式呼叫後,其指向的記憶體資料就會被刪除。若被static修飾,不會被刪除
int
&test01()
int&
test02()
intmain()
引用(別名)可以做左值
// 2.引用(別名)可以做左值
test02()
=1000
; cout <<
"ref2= "
<< ref2 << endl;
// 1000
cout <<
"ref2= "
<< ref2 << endl;
// 1000
為防止傳到函式中的引用發生變化,有const修飾引用
void
showvalue
(const
int& val)
2 C 中的引用
一.c 中的布林型別 c 中的布林型別只有true 和 false。true代表真,編譯器用1表示。false代表假,編譯器用0表示。include int main int argc,char argv 二 三目運算子的公升級 c語言中,三木運算子只能返回變數值,不能當左值使用。在c 中三目運算子...
2 C 中的引用
int a 10 int b a int b 是錯誤的必須初始化 引用在初始化後,不可以改變 int c 20 b c 賦值操作,而不是更改引用。include using namespace std 交換函式 1.值傳遞 形參不會修飾實參 void swap1 int a,int b void s...
(2)C 語法基礎
1.關鍵字 在c 中常常使用關鍵字,關鍵字也叫保留字,是對c 有特定意義的字串。關鍵字在visual studio 環境的 檢視中預設以藍色顯示。例如,中的using namespace class static void等,均為c 的關鍵字。2.命名空間 系統命名空間使用using關鍵字匯入,sy...