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

猜你喜欢

转载自blog.csdn.net/f2157120/article/details/106889944