这是无效的语句,因为 'p1' 和 'p2' 都是指针变量,它们存储的是内存地址,而不是具体的数值。当执行 'p2 = p1 + p2' 时,编译器会认为 'p2' 的值是一个指针地址,而 'p1 + p2' 是一个无法确定的地址,因此这条语句是无效的。

如果你想要让 'p2' 指向 'p1' 所指向的地址加上 'p2' 所指向的地址,你可以使用以下语句:

p2 = (int *)((char *)p1 + (char *)p2);

这里使用了类型转换,将指针转换为 'char *' 类型,然后将它们相加,最后再将结果转换回 'int *' 类型。但是需要注意的是,这种操作很容易出错,因此建议在实际编程中避免使用。

C语言指针运算:为什么p2=p1+p2; 是无效语句?

原文地址: https://www.cveoy.top/t/topic/oxX9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录