C語言基礎 -39 指針_指針數組與數組指針的區別

行指針:就是數組指針的概念, 一個指針指向的內容並不是類似於整型值的基本數據類型,而是數組。

數組指針:終究是一個指針,這個指針指向數組

指針數組:當前數組的每個元素都是指針

數組指針與指針數組的定義,就差一個括號。

如果把數組名與*括起來,就是數組指針,如果不用括號,就是指針數組

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章