3.7 C提高 4Day

1.一维数组的了解
int a[] = { 1, 2, 3, 4, 5, 6, 7, 8 };
n = sizeof(a) / sizeof(a[0]); //n = 8
前一个sizeof(a)的a 代表整个元素的地址 虽然也是首地址 但是他代表的是整个地址 8*4
sizeof(a[0]) 某一个元素的首地址

//数组类型
//a代表首元素地址
//&a代表整个数组首地址,它和首元素地址一样的,但是,它们步长不一样
printf("a:%d, a+1:%d\n", a, a + 1); //+4
printf("&a: %d, &a+1:%d\n", &a, &a + 1); //+32

//数组类型:由元素个数 和元素类型对应 int [8]
//通过typedf定义一个数组类型
//有typedef是类型,没有是变量
typedef int A[8]; //代表数组类型,它是一类型,不是变量
//typedef int (A)[8];

A b; // int b[8], 去了typedef, b替换到A的位置

2.指针数组 数组指针
//指针数组,它是数组,每个元素都是指针
//[] 比 * 优先级高
char *a[] = { "aaaaaaa", "bbbbbbbbbb", "ccccccc" };

//数组指针,它是指针,指向一个数组的指针
指的是数组名的指针,即数组首元素地址的指针。即是指向数组的指针。
//数组指针,指向一维数组的整个数组,而不是首元素地址
//定义数组指针变量
//1、先定义数组类型,根据类型定义指针变量
typedef int A[10]; //A数组类型, [10]代表步长
A *p = NULL; //p数组指针类型变量 --int *P
///指的是数组名的指针,即数组首元素地址的指针。即是指向数组的指针。
//p = a; //a代表首元素地址, a 和 &a 一样,最终也是当做&a,警告
p = &a; //&a代表整个数组首地址

3.二维数组

posted @ 2023-03-07 11:48  逆向狗  阅读(17)  评论(0)    收藏  举报