写了个小程序 一直出错
基础没扎实 就是费事
收获:数组是数组 指针是指针
/·········································································································/
int a[9];
int *p=a;
数组: a 表示数组元素的首地址 a+1 数组第二个元素的地址 类型 与 *p 无异;
printf("%d\n",p)== printf("%d\n",a)
printf("%d\n",++p)== printf("%d\n",++a)
int *p=&a;
&a表示数组的地址 &a+1 越过数组 类型 int(*)[9]
它是代表整个数组的,它的进阶单位是整个数组的字节长度
printf("%d\n",p)== printf("%d\n",&a)
printf("%d\n",++p) != printf("%d\n",&a+1)
因为是 int ++p 只是+4; 而&a+1 是加 sizeof(int )*9;
若是char型的 则只是加 sizeof(char), 后者是 sizeof(char)*9;
不论是 &a 还是a 指针都只是 指向了首地址 (数组首元素的地址==数组地址)
参考:http://write.blog.csdn.net/postedit/52425805
/······················································································································/
数组的访问是从下表为 0 开始的 所以:
length=strlen(str)-1;//与个人的编程有关
有9个数 只要访问到 str[8]即可啦 下次别错了