Chinaunix首页 | 论坛 | 博客
  • 博客访问: 484331
  • 博文数量: 285
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 629
  • 用 户 组: 普通用户
  • 注册时间: 2013-10-14 17:53
个人简介

相信自己,快乐每一天

文章分类

全部博文(285)

分类: C/C++

2014-09-08 16:23:45

#include
#include


int main(int argc, char **argv)
{
char *start[3] = {"one","two","three"};
char *start1[5] = {"one","two","three"};
char *p = "this is one";
printf("&start[0]----%u\n",&start[0]);
printf("start----%u\n",start);
printf("&start[0] + 1----%u\n",&start[0] + 1);
printf("start + 1----%u\n",start+1);
printf("start[0] + 1----%u\n",start[0] + 1);
printf("start[0]----%u\n",start[0]);
printf("***********************************\n");
printf("&start1[0]----%u\n",&start1[0]);
printf("start1----%u\n",start1);
printf("&start1[0] + 1----%u\n",&start1[0] + 1);
printf("start1 + 1----%u\n",start1+1);
printf("start1[0] + 1----%u\n",start1[0] + 1);
printf("start1[0]----%u\n",start1[0]);
printf("p + 1----%u\n",p+1);
printf("p----%u\n",p);
getch();
return 0;
}
从以上运行的结果来看,数据类型只能限制一级指针的类型,而不能制约两级指针的类型,从下图中可以看出,二级指针start和start1的存储方式

是由os的地址位数来决定的,比如本系统测试为32位os,因此,二者加1的结果都为4个字节,由此,来说明问题。
如果有问题,请各位网友批评指正,谢谢。
阅读(835) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~