1).通過函式將兩個數作為形參傳入
//定義函式,實現兩個變數值的交換:普通方式(不能交換)
void swap1(int x,int y)
當基本資料型別作為函式的引數時是值傳遞,並不能改變主調函式的值
2).傳遞位址方式(只交換位址)
//只交換兩個變數的位址,也不能實現交換
void swap2(int
*px,int
*py)
3).位址傳遞並交換連個位址中的值
//通過指標改變了兩個值的內容,實現了交換
void swap3(int *px,int *py)
通過指標改變乙個值的方式稱為間接方式改變
1).通過指標間接的改變乙個變數的值(詳見第乙個標題)
2).通過指標能夠讓函式有多個返回值
//實現計算器
void calculator(int
x,int
y,int
*psum,int
*pjian,int
*pcheng,float *pchu)
所謂的多個返回值並不是多個return,而是一次性的修改多個變數的值
//定義乙個變數
int a = 0;
//定義乙個一級指標指向a,假設a的位址為0xf2
int*p = &a;
p == 0xf2;
*p == *0xf2 == a;
//定義乙個二級指標指向p
int* *p1 = &p;
//此時p1的記憶體單元中存放的是p的位址,假設p的位址為0xf0
p1 == 0xf0;
*p1 == *0xf0這個位址所指向的內容 == 0xf2
**p1 == **
0xf0 == *0xf2 == a;
二級指標就是乙個指向指標的指標
//定義乙個整型變數
int a = 245;
//定義乙個整型的指標指向a
int *p = &a;
//取a的值
*p;//如果定義乙個char型別的指標指向a
char *p1 = &a;
//則在計算*p1時就不能夠準確的算出a的值,因為只計算了1個位元組
指標區分型別是為了準確的計算變數的值
//定義乙個陣列
int a = ;
//定義乙個指標指向陣列a
int*ap = a;
//利用該指標遍歷陣列a
for (int i = 0; i < 5; i++)
應用1:將乙個陣列逆序輸出
char *first = ch;
char *last = &ch[length-1];
char temp = 0;
while( last - first > 0 )
temp = *first;
*first = *last;
*last = temp;
first++,last
--;}
// 定義乙個整型陣列
int a[5]=;
//定義乙個指標陣列
int*pa[5]=;
//遍歷指標陣列
for(int i = 0; i < 5; i++)
//其中
pa[i] == *(pa+i) == &a[i]
*pa[i] == *(
*(pa+i)) == a[i]
//定義乙個二維陣列
int a[3][4]=, ,};
//a+0
a[0] 135
7 //a+1
a[1] 9
1113
15 // a[i]+j 代表的是 a[i][j]的位址
// *(a[i]+j) 代表是 a[i][j] 的值
// a[i] *(a+i)
a[i] == a+i
&a[i][j] == *(a+i)+j == a[i]+j
a[i][j] == *(*(a+i)+j)
二維陣列比較特殊
// a == a[0] == &a[0][0] == &a[0] == &a
1).用一級指標訪問二維陣列
//定義乙個二維陣列
int a[3][4]=, ,};
// 整形變數的位址
// 1 2
int *p = a;
// 使用一級指標變數p 也可以遍歷二維陣列,
// 二維陣列在記憶體中是線性儲存的
for (int i=0; i<12; i++)
在用一級指標訪問二維陣列時會有警告,一般不這樣使用
2).用二維陣列指標訪問二維陣列
//定義乙個二維陣列
int a[3][4]=, ,};
//定義二維陣列指標
int (*p)[4] = a;
for (int i=0; i<3; i++)
printf("\n");
}
3月17日學習總結
貪心練習總結 在這一周沒課的時間,做了幾道貪心的練習題發現了自己總是不能第一時間的想到簡單的貪心方法,總是沉浸在原來 的舊方法中。要多想一些時間,才可以發現貪心的辦法。也許這是因為我做的題目太少的原因,對這樣的題目不是太熟悉。在這次的練習中又發現了結構體的好處,在某些比較 陣列等特別好用,便於構造c...
2023年3月17日 3月20日訓練總結
首先先做個檢討,因為好久沒有寫訓練總結了,也不想找什麼藉口,大家都一樣,而我沒寫,就是怠慢。並且這套練習題前幾天我沒有做,到之後幾天做的很急,導致現在雖然做完了,但是雲裡霧裡 總結一下這幾天,學習的成果感覺比上乙個階段是要好不少,貪心這東西掌握的也要好多了,怎麼說呢,思想上通了就簡單,找到了怎麼貪一...
12月17日總結
今日工作總結 1 xxy開發完成了bc模式的運輸費計算 2 lzk已經完成了rdc入庫的除錯 3 lzf繼續在調整線路 目前還沒有完成的任務 1 運輸費預提的檢查和除錯 2 結算報表的開發,這個很複雜 3 運輸管理報表的開發,這個很緊急,4 其他報表的檢查,20日必須開始對報表進行相關的檢查 5 介...