指针是变量
地址和指针的区别
地址是常量
指针是变量
指针变量加1,其结果相当于加1个其指向类型所占的字节数。
两个数相加整形向浮点看齐,整形向指针看齐.
指针是地址变量
数组名是地址常量。
int a[5] = {1,2,3,4,5};
int * p = a; //数组名就是第一个元素的地址。
*(p+0) //取得第一个元素
*(p+1) //取得第二个元素
这样访问数组在书写上有点麻烦,后人们就用p[0],p[1] 来访问数组元素
静态数组默认值是0 //static int aa[3];
切记:自动数组不能自动地初始化为0.至少要将第一个数组元素初始化为0,这样余下的元素才会被自动地初始化为0;
//int bb[3]={0};
字符串数组。
字符串"hello" 这样的字符串在c语言中就是一个由多个单字符组成的静态数组。
定义一个字符数组
char strArr[] = "first";//字符串"first"是由5个字符加上一个被称为空字符的字符串结束符共同组成。
因些,字符数组strArr就包含有6个元素。表示空字符的字符常量是'\0';
上面字符数组初始化的语句等价于下面这条语句:
char strArr[] = {'f','i','r','s','t','\0'};
我们可以用这样访问: strArr[0]访问f 或strArr[1]访问i
静态数组会在编译时被一次性地自动初始化。如果没有显式地初始化一个静态数组,那么它的元素值被编译器初始化为0。