1. 程式人生 > >C語言陣列元素地址作為函式引數

C語言陣列元素地址作為函式引數

今天首先來做一個題,值得借鑑。

#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"); }