若有说明:int*p,m=5,n;程序scanf("%d,&n");*p=n;为什么错误
时间: 2024-03-14 10:44:19 浏览: 144
c代码-N进制数num转换成M进制下的数
这段程序错误的原因是 `scanf()` 函数中的格式字符串参数应该放在双引号内,而这里的双引号没有正确地包含 `%d` 和 `&n`。
应该将程序修改为:
```cpp
int *p, m=5, n;
p = &m;
scanf("%d", &n);
*p = n;
```
这样就能够正确读取用户输入的整数值,并将它赋给指针 `p` 所指向的内存地址,也就是变量 `m`。
另外,需要注意的是,`scanf()` 函数中的格式字符串参数应该和对应的变量类型匹配。在这个例子中,我们使用 `%d` 来读取一个整数值,并且将其存储在变量 `n` 中。然后,我们将 `n` 的值赋给指针 `p` 所指向的内存地址,也就是变量 `m`。
阅读全文