C语言中由于指针的灵活性,导致指针能代替数组使用,或者混合使用,这些导致了许多指针和数组的迷惑,因此,刻意再次深入探究了指针和数组这玩意儿,其他类型的数组比较简单,容易混淆的是字符数组和字符指针这两个。。。下面就开始剖析一下这两位的恩怨情仇。。。
1 数组的本质
数组是多个元素的集合,在内存中分布在地址相连的单元中,所以可以通过其下标访问不同单元的元素。。
2 指针。
指针也是一种变量,只不过它的内存单元中保存的是一个标识其他位置的地址。。由于地址也是整数,在32位平台下,指针默认为32位。。
3 指针的指向?
指向的直接意思就是指针变量所保存的其他的地址单元中所存放的数据类型。
int * p ;//p 变量保存的地址所在内存单元中的数据类型为整型
float *q;// ........................................浮点型
不论指向的数据类型为那种,指针变量其本身永远为整型,因为它保存的地址。
4 字符数组。。。
字面意思是数组,数组中的元素是字符。。确实,这就是它的本质意义。
char str[10];
定义了一个有十个元素的数组,元素类型为字符。
C语言中定义一个变量时可以初始化。
char str[10] = {"hello world"};
当编译器遇到这句时,会把str数组中从第一个元素把hello world
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4677/viewspace-2809121/ ,如需转载,请注明出处,否则将追究法律责任。