行指針:就是數組指針的概念, 一個指針指向的內容並不是類似於整型值的基本數據類型,而是數組。
數組指針:終究是一個指針,這個指針指向數組
指針數組:當前數組的每個元素都是指針
數組指針與指針數組的定義,就差一個括號。
如果把數組名與*括起來,就是數組指針,如果不用括號,就是指針數組
book@100ask:~/C_coding/CH01$ cat pointer_arr.c
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
char *name[5] = {"Follow me","Basic","Great","Fortran","Computer"}; // pointer array
//it`s array, but each member of the array is pointer
for(i = 0; i < 5; i++)
puts(name[i]);
exit(0);
}
book@100ask:~/C_coding/CH01$ make pointer_arr
cc pointer_arr.c -o pointer_arr
book@100ask:~/C_coding/CH01$ ./pointer_arr
Follow me
Basic
Great
Fortran
Computer
book@100ask:~/C_coding/CH01$ cat pointer_arr.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int i,j,k;
char *name[5] = {"Follow me","Basic","Great","Fortran","Computer"}; // pointer array
//it`s array, but each member of the array is pointer
char *tmp;
for(i = 0; i < 5-1; i++)
{
k = i;
for(j = i+1; j < 5; j++)
{
if(strcmp(name[k],name[j]) >0 )
k = j;
}
if(k != i)
{
tmp = name[i];
name[i] = name[k];
name[k] = tmp;
}
}
for(i = 0; i < 5; i++)
puts(name[i]);
exit(0);
}
book@100ask:~/C_coding/CH01$ make pointer_arr
cc pointer_arr.c -o pointer_arr
book@100ask:~/C_coding/CH01$ ./pointer_arr
Basic
Computer
Follow me
Fortran
Great