指標
1、定義
基型別 * 指標變數名
2、賦值
int a;
int *pa=&a;// int a,*pa=&a;
int *p2;
p2=&a;
兩個運算子
& 取位址,後面運算元必須是變數 * 指標運算子,後面的運算元必須是指標
int a=3;
int *pa=&a;
&a 正確,表示a的位址
&pa 正確,表示pa的位址
*a 不對
*pa 正確,表示的是pa指向的變數,即a
*&a 正確, 表示的就是a
*&pa 正確,表示的是pa
&*a 不對
&*pa 正確,表示的是pa,即&a,
& * 如果正確使用,則兩個運算子可以相互抵消
void exchange(int *p1,int *p2)
void exchange(int *p1,int *p2)
利用指標訪問(引用)陣列
通過下標遍歷陣列元素
int a=;
a表示的是陣列首元素的位址,是乙個位址常量,不能改變,等價&a[0]
int * pa=a;//指標變數pa指向陣列首地址
int *pa=&a[0];
如果指標變數指向陣列的首位址,此時指標變數可以使用下標,即指標變數等同於陣列名
a[1]====>pa[1]
當指標變數指向陣列的時候,指標變數的加減運算才有意義
當指標變數pa指向陣列a的首位址,且pa的值不能改變,一直指向陣列的首位址,i表示下標
pa+i《=》&a[i]《=》&pa[i] 《=》a+i 表示的是陣列元素的位址*(pa+i)《=》a[i]《=》pa[i]《=》*(a+i) 表示的是陣列元素
void
main()
/*for(i=0;i<10;)
*/for
(i=0
;i<
10;i++)/*
for(i=0;i<10;)
*/}
void
main()
for(i=
0;i<
10;i++
)}
//通過指標變數的改變,訪問陣列元素
void
main()
for(pa=a;pa10;pa++
)//一定要注意指標的當前位置
/*for(pa=a;pa}
void
main()
for(i=
0,pa=a;i<
10;i++
,pa++
)//一定要注意指標的當前位置
}
void
main()
;int i;
int*pa=
&a[3];
for(i=
3;i<
10;i++
,pa++
)//通過指標變數,為a[3]-a[9]賦值
/*for(i=3;i<10;i++)//通過指標變數,為a[3]-a[9]賦值
*/for
(i=0
,pa=a;i<
10;i++
,pa++
)//一定要注意指標的當前位置,迴圈輸出陣列所有的元素
/*for(i=0,pa=a;i<10;i++)//一定要注意指標的當前位置,迴圈輸出陣列所有的元素
*/}
用陣列名做函式引數
void main();}
int research(int a,int x,int num)
;int t,x,index;
int research1(int a,int x,int num);
int insert(int a,int index,int x,int num);
arraynum=10;
size=6;
scanf("%d",&x);
/ t=research(a,x,size);
if(t1)
else
*/t=research1(a,x,size);//陣列名a做函式的實參,傳遞的是值(位址),即陣列的首位址
if(t!=-1)
else
scanf("%d%d",&index,&x);
t=insert(a,index,x,size);
if(t0)
else
}int research(int a,int x,int num)//a是int型別的指標,等價於int research(int * a,int x,int num)
}return 0;
int research1(int a,int x,int num)//查詢陣列中的x,返回x的下標
for(i=num-1;i>=index;i–)//後移
a[index]=x;//在index位置插入x
size++;
return 1;//用1代表正常插入元素的情況
}int insert1(int a,int x,int num)//在陣列元素的最後追加x
a[num]=x;
size++;
return 1;//用1代表正常插入元素的情況
}int delete(int a,int x,int num)//陣列中的x如果存在則刪除
for(i=t;i}
void update(int a,int x,int y,int num)//將陣列中的x更新成y
a[t]=y;
return 1;
Lua程式設計(三十九)
假設有乙個用表來表示集合的模組。該模組還有一些用來計算集合並集和交集等的函式。local set function set.new l local set for v in ipairs l do set v true end return set endfunction set.union a,b...
shell程式設計題(十九)
題目 設計乙個shell程式,在 userdata目錄下建立50個目錄,即user1 user50,並設定每個目錄的許可權,其中其他使用者的許可權為 讀 檔案所有者的許可權為 讀 寫 執行 檔案所有者所在組的許可權為 讀 執行。答案 bin bash mkdir userdata if eq 0 t...
C 高階程式設計十九天 部分類
部分類 c 中使用關鍵字 partial把類,結構或結構放在多個檔案中 一般情況下 乙個類全部駐留在單個檔案中 但有時候 多個開發人員需要訪問同乙個類 或者某種型別的 生成器生成了乙個類的某部分 所以把類放在多個檔案中是有益的.用法 把partial 關鍵字放在 class,struct 或inte...