数组:一类相同元素的集合。
例如:{1,2,3,4,5,6}
一维数组的初始化:
类型+数组名[] = {element};
其中数组名后的[]内可以什么都不写,element如果不知道写什么可以先写0。
二维数组的初始化:
类型+数组名[][7] = {element};
注意数组名后的第二个括号内必须写上数值(列),第一个括号内可以什么都不写(行),element也可以写为0。
数组名:
一维数组的数组名代码数组首元素的地址,二维数组的数组名代表数组第一行的地址,第一行元素的地址即是第一行元素首元素的地址。
指针类型的意义:
1.决定了解引用指针时能够访问空间的大小
2.决定了指针的步长的大小
野指针:指针指向的地址是随机的,不确定的。就像街上的野狗一样,没有主人。
产生原因:
1.指针未初始化
2.指针指向的空间已被释放
3.指针的越界访问
如何规避野指针:
1.指针使用前进行初始化
2.判断指针指向的空间是否发生改变
3.避免指针越界访问
4.指针使用前判断此指针是否为空指针
指针的相关操作:
1.指针加减整数
eg:
int a = 7;
int* p = &a;
printf(" %p\n ",*p);
printf(" %p\n ",*p + 1);
return 0;
结果是二者地址相差4个byte。
指针跳过的字节数与指针类型有关。
2.指针减指针
意义:结果是二者之间元素的个数。
eg:
int arr[7] = { 1,2,3,4,5,6,7 };
printf(" %d\n ", &arr[6] - &arr[0]);
return 0;
结果是7。