1. 程式人生 > 其它 >學習指標(1)

學習指標(1)

技術標籤:C語言學習之路指標c++

學習目標:一週掌握 掌握指標基本知識

學習內容:實驗課兩個簡單的題

1、輸入n(不大於20)個整形數存入一維陣列,用指標變數處理陣列元素的方式將其排序後倒序輸出。n從鍵盤輸入。
2、求矩陣a[2][3]={11,22,33,44,55,66}的轉置矩陣t[3][2],並按矩陣的形式輸出兩矩陣,要求用指標實現。

#include<stdio.h>
#include<iostream>
using namespace std;
void f(int * p, int len)//定義一個int * 型別的地址變數p,p指向a;
{
    int
i, k, m; for (i = 0; i < len; i ++)//進行一個很簡單的排序; { for (k = i + 1; k < len; k ++) { if(p[i] < p[k]) swap(p[i], p[k]); } } for (m = 0; m < len; m ++) printf("%d ", p[m]); } int main () { int n, a[25]; cin >>
n; for (int i = 0; i < n; i ++) cin >> a[i]; f(a, n); return 0; }
#include<stdio.h>

void fun(int *a, int *b, int NX, int NY)
{
    int i;
    for (i=0; i<NX*NY; i++) b[i]=a[i];//二維陣列的地址是連續的
}
int main()
{
    int a[2][3]= {11,22,33,44,55,66};
    int b[3][2];
    int
i,j; fun(&a[0][0], &b[0][0], 2, 3); for (j=0; j<3; j++) { for (i=0; i<2; i++)printf("%d ",b[j][i]); printf("\n"); } return 0; }

總結:a[i] 的首地址可以寫成 a,但二維陣列a[i][k]的首地址要寫成a[0][0]。
陣列的地址是連續的,一維的,對於多維陣列也是如此,如陣列a[1][1]的地址依次為a[0][0],a[0][1],a[1][0],a[1][1]。