请教C语言一个有关指针的问题。

2025-05-14 09:24:35
推荐回答(3个)
回答(1):

因为p是个int* 而a是个char*
p++一次移动4个字节,所以*p=*p+1在a数组的范围内修改了a[0]和a[4],i>1以后的都是越界操作
于是最终输出Dhinb

你用的什么编译器,像p=a这个在目前的编译器是通不过的

回答(2):

把int *p 换做char *p 就好了。
至于为什么输出的是Dhinb,因为字符指针和整型指针跳转一次所移动的字节不同。具体多少字节卡你电脑的处理器是多少位的。

回答(3):

int 同char 的问题!