C语言教材 第章 指针 实验.docVIP

  • 150
  • 0
  • 约1.18万字
  • 约 11页
  • 2016-10-06 发布于贵州
  • 举报
C语言教材 第章 指针 实验

第七章 指针 第一部分 知识训练 【知识要点】 1. 地址与指针2. 指向变量的指针变量3. 指针与指针与 char * const p;char const * p  const char *p 上述三个有什么区别?char * const p; //常量指针,p的值不可以修改  char const * p;//指向常量的指针,指向的常量值不可以改  const char *p; //和char const *p. main(){    int a[5]={1,2,3,4,5};   int *ptr=(int *)(a+1);   printf(%d,%d,*(a+1),*(ptr-1));  }?? 输出结果是什么?  答案:输出:2,5 *(a+1)就是a[1],*(ptr-1)就是a[4],执行结果是2,5 a+1不是首地址+1,系统会认为加一个a数组的偏移,是偏移了一个数组的大小(本例是5个int) int *ptr=(int *)(a+1);则ptr实际是(a[5]),也就是a+5  原因如下:a是数组指针,其类型为 int (*)[5];而指针加1要根据指针类型加上一定的值,不同类型的指针+1之后增加的大小不同。a是长度为5的int数组指针,所以要加 5*sizeof(int)所以ptr实际是a[5]  但是prt与(a+1)类型是不一样的(这点很重要)所以

文档评论(0)

1亿VIP精品文档

相关文档