行指针:就是数组指针的概念, 一个指针指向的内容并不是类似于整型值的基本数据类型,而是数组。
数组指针:终究是一个指针,这个指针指向数组
指针数组:当前数组的每个元素都是指针
数组指针与指针数组的定义,就差一个括号。
如果把数组名与*括起来,就是数组指针,如果不用括号,就是指针数组
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