什么是指针:
存放地址的变量
指针的加减:
指针的加减和指针指向的变量类型有关,指针++并不一定是加1,而是加上一个他所指向的变量类型所占的空间
比如:int a=100;
int *p=&a; p++;
这个时候p存放的地址实际上加的是4,因为一个int类型占4个字节。
什么是数组:
相同数据类型的元素按一定顺序排列的集合,把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标
数组和指针类似,只不过它指向的是一片连续的空间。数组名就是所存数据的首地址,下标则表示离首地址的相对位置,取数组中的内容时会通过:
数组首地址+下标*sizeof(数组类型) 来获得所访问数据所在的具体内存地址。
数组存放字符串
数组用来存放字符串时它能存放的实际有效字符长度比它的实际长度小1
这跟字符串的读取方式有关,读取字符串时是以\0作为结束标志的,所以如果字符数组存放字符串时没有在最后放上\0的话,那么读取这个字符串时当读到字符串末尾时因为没有遇到\0就会接着往下读,因为接着后面内存中的内容是不确定的就会出现输出字符串出现乱码的情况。