搜索
首页 电脑/网络 软件

C语言设计问题

main(){char *p="abcdefgh",*r;long *q;q=(long *)p;q++;r=(char *)q;printf("%s\n",r);}请问这个结果是什么???请说详细点!!!

全部回答

2006-09-04

121 0
      首先声明了两个指向字符型数据的指针变量p和r,然后声明了一个指向长整形数据的指针变量q。其中p和q都指向同一个字符串“abcdefgh”。 由于q指向的是长整形的数据,因此执行自增加操作时将向后移动4个字节,即指向字符串“efgh”。
  再执行r=(char*)q时就将r也指向了和q所指向的相同地址,因此输出结果就是: efgh 如果代码写成: p++; r=p; 则由于p是指向字符型数据的指针,其执行自增加操作时只向后移动1个字节,因此输出结果将是: bcdefgh 。
  

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
软件
硬件
电脑装机
程序设计
互联网
操作系统/系统故障
笔记本电脑
反病毒
百度
软件
软件
多媒体软件
系统软件
办公软件
网络软件
图像处理软件
举报
举报原因(必选):
取消确定举报