hpc_zy
通過幾個簡單示例,直觀展示「值、位址、指標、陣列指標」的關係與工作方式。需要自行執行下列**,觀察分析其輸出結果,從而理解其中的原理。
如果只是來看陣列值的快速交換,可直接跳到5
#include
"stdafx.h"
#include
"malloc.h"
void
main()
/*交換兩個變數的值(排序演算法中常用到)*/
void
main1()
/*交換兩個指標變數的值*/
void
main2()
/*交換兩個陣列指標的值*/
void
main3()
// 顯示
printf
("\n\n交換前: a = ");
for(
int k =
0; k < n; k++
)printf
("%d "
, a[k]);
printf
("\n交換前: b = ");
for(
int k =
0; k < n; k++
)printf
("%d "
, b[k]);
// 交換
int*tmp = a;
printf
("\na = %0x\n"
, a)
;printf
("&a = %0x\n"
,&a)
;printf
("\nb = %0x\n"
, b)
;printf
("&b = %0x\n"
,&b)
;printf
("\ntmp = %0x\n"
, tmp)
;printf
("&tmp = %0x\n"
,&tmp);
a = b;
b = tmp;
printf
("\na = %0x\n"
, a)
;printf
("&a = %0x\n"
,&a)
;printf
("\nb = %0x\n"
, b)
;printf
("&b = %0x\n"
,&b)
;// 顯示
printf
("\n\n交換前: a = ");
for(
int k =
0; k < n; k++
)printf
("%d "
, a[k]);
printf
("\n交換前: b = ");
for(
int k =
0; k < n; k++
)printf
("%d "
, b[k]);
printf
("\n\n\ndone");
getchar()
;}
比如,a = [0,1,2,3],b=[4,5,6,7];要交換他們的值,得到 b = [0,1,2,3],a=[4,5,6,7]。
注:其實就是4中的例子
/*交換兩個陣列指標的值*/
void
main3()
// 顯示
printf
("\n\n交換前: a = ");
for(
int k =
0; k < n; k++
)printf
("%d "
, a[k]);
printf
("\n交換前: b = ");
for(
int k =
0; k < n; k++
)printf
("%d "
, b[k]);
// 交換
int*tmp = a;
a = b;
b = tmp;
// 顯示
printf
("\n\n交換前: a = ");
for(
int k =
0; k < n; k++
)printf
("%d "
, a[k]);
printf
("\n交換前: b = ");
for(
int k =
0; k < n; k++
)printf
("%d "
, b[k]);
printf
("\n\n\ndone");
getchar()
;}
也是學了好久用了好久,都沒明白深層的原理,故自己寫了一些實驗例子,總算搞懂了背後的原理。在此分享給大家,希望也能幫到你們。
由於電腦暫時無法執行c**,所以不能貼出執行結果,請大家在自己電腦執行。
D link路由器快速交換的介紹
傳統路由器的基本作用是路由計算程式設計客棧和包 通常基於共享儲存器體系結構,採用集中式cpu控制共享匯流排,連線到多個介面卡上,介面卡包含簡單的佇列等結構,與cpu通訊,通過共享匯流排實現資料報 隨www.cppcns.com著internet的快速發展和大量新的服務需求的不斷出現,對網路的路由和交...
c 語言 最值交換
題目描述 有乙個長度為n的整數序列。請寫乙個程式,先把序列中的最小值與第乙個數交換,再把最大值與最後乙個數交換。輸出轉換好的序列。分別編寫兩個函式minindex 和maxindex 來計算最小值下標和最大值下標。intminindex int a,int n 函式返回陣列a中最小元素的下標 int...
交換兩個陣列的值 C語言版
今天分享乙個簡單程式 交換兩陣列的值 define n 10 define crt secure no warnings include include void readarry int a,int n void printfarry int a,int n void swap int p,int...