Part C Advanced Memory Pointer Array array pointer

#include <stdio.h>
#include <stdlib.h>

//内存
#if 0
int main(){
	char a= - 128;
	char b = -127;
	char c = -126;
	printf("%d %d %d\n", a, b, c);
	printf("%u %u %u\n", a, b, c);
	system("pause");
	return 0;
}
#endif
#if 0
int main(){
	char a = -1;
	signed b = -1;
	unsigned c = -1;
	printf("%d,%d,%d\n", a, b, c);
	printf("%u,%u,%u\n", a, b, c);
	system("pause");
	return 0;
}
#endif

//数组指针
#if 0
//qsort->排序  cmp->回调函数
int cmp(const void*p1, const void*p2){
	return (*(int *)p1 - *(int *)p2);
}
int main(){
	int arr[] = { 6, 5, 7, 8, 9, 0, 1, 2, 3, 4, 5 };
	int n = sizeof(arr) / sizeof(arr[0]);
	int i;
	qsort(arr, n, sizeof(int), cmp);
	for (i = 0; i < n; ++i){
		printf("%d ", arr[i]);
	}
	system("pause");
	return 0;
}
#endif
#if 0
int main(){
	int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
	int(*p)[10];
	p = &arr;
	system("pause");
	return 0;
}
#endif

//指针数组
//数组名不能在左值
//int a[3][4]
//a   ->(int*)[4]
//a[i]      ->int *
//a[i][j]  ->int
#if 0
int main(){
	char(*name)[5] = { "lili", "a", "fasfafaffage", "fafaetaac", "fayeyuyn" };
	//数组指针  //错误:因为name为指向一个存放五个字符的数组指针,
	                  //本质还是指针,且指向的这个数组里面只能含有
	                  //五个字符。
	char *name[5] = { "lili", "asdafafa", "fasfafaffage", "fafaetaac", "fayeyuyn" };
	//指针数组
	system("pause");
	return 0;
}
#endif

Guess you like

Origin blog.csdn.net/qq_44783220/article/details/90314863