C語言陣列元素地址作為函式引數
阿新 • • 發佈:2019-02-10
今天首先來做一個題,值得借鑑。
#include<stdio.h>
void fun(int *p){
printf("%d",p[5]);//列印第六個元素,但是地址傳入的第四個元素,
getchar();
}
void main()
{
int a[10] = {1,2,3,4,5,6,7,8,9,10};
fun(&a[3]); //把陣列的第4個元素的地址傳入進去
}
// 最後列印的元素的是9 a[3+5]是第九個元素。
我們還有一點值得注意的是,即便傳遞的陣列中的一個元素的地址,也可以傳遞陣列中的其他元素,應為該元素地址已經幫指標定位到陣列的某一位置,也可以通過這個位置來推斷其他元素的位置。
今天的第二題的是,如何在陣列倒序輸出
#include<stdio.h>
#include<stdlib.h>
//解題思路。講a[0]與a[n-1]互換
//a[4]和a[5]互換
void main()
{
int n = 5; int a[5] = { 2, 4, 5, 7, 8 };
int i;
// 依次交換首尾元素,直到中間的數字
for(i=0;i<n/2;i++)
{
int t = a[i];
a[i] = a[n - 1 - i];
a[n - 1 - i] = t;
}
for (int j = 0; j < 5; j++)
{
printf("%d", a[j]);
}
getchar();
system("psuse");
}