Logo 离子不带电的博客

博客

萌新刚学指针,求教这段代码为什么运行会崩溃

2023-03-31 20:33:06 By 离子不带电

include

using namespace std;

int main() { int a = 0; int p = &a; for (int i = 0; i < 10; ++i) { (p + i) = i; } for (int i = 0; i < 10; ++i) { cout << *(p + i) << endl; } return 0; }

评论

离子不带电
#include<iostream> using namespace std; int main() { int a = 0; int *p = &a; for (int i = 0; i < 10; ++i) { *(p + i) = i; } for (int i = 0; i < 10; ++i) { cout << *(p + i) << endl; } return 0; }
飒戾
@mike 用法没问题,但是p+i是在p指向的那个地址上再加上i,*(p + i)取得的是p+i指向地址的值,但你定义的是一个变量a,不是一个数组,你只能访问a这个变量,a及其后面的比a地址大的元素你没有访问权限。

发表评论

可以用@mike来提到mike这个用户,mike会被高亮显示。如果你真的想打“@”这个字符,请用“@@”。