若有int n=10,-0,*p=&n1,幸qm:,则以下赋值话句中错误的是
时间: 2024-03-23 14:41:37 浏览: 16
这是一个 C++ 的问题,我可以为您解答。根据您提供的信息,以下赋值语句中错误的是 *p=&n1,应该是 *p=&n;。原因是 &n 是变量 n 的地址,而 n1 不是已定义的变量,所以会出现编译错误。另外,-0 也没有任何意义,可以直接省略。因此,正确的代码应该是:
```
int n = 10;
int *p = &n;
```
这样就可以将变量 n 的地址赋值给指针变量 p。
相关问题
若有int n=10,m=20,*p=&n,*q=&m,则以下赋值话句中错误的是a,p=q,b,* p=*q, p=*q
根据您提供的信息,以下赋值语句中错误的是 `p=*q`。因为 `p` 是一个指向整型变量 `n` 的指针,而 `*q` 是整型变量 `m` 的值,类型不匹配,不能将一个整型值直接赋给一个指针变量。另外,`a` 和 `b` 都是表达式,没有被完整地给出,无法判断它们是否正确。因此,正确的代码应该是:
```c++
int n = 10;
int m = 20;
int* p = &n;
int* q = &m;
*p = *q; // 将 m 的值赋给 n,即将 20 赋给变量 n
```
这样就可以将变量 `m` 的值赋给变量 `n`。
设有定义:int n1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是______。 A *p=*q; B p=q; C *p=&n1; D p=*q;
与`n2=n1;`语句等价的是`*p=*q;`语句。
`*p`表示指针p指向的变量的值,`*q`表示指针q指向的变量的值,因为`q=&n1`,所以`*q`就是n1的值,因为`p=&n2`,所以`*p`就是n2的值,所以`*p=*q`就相当于`n2=n1`。
其余选项的意义如下:
- A *p=*q; 表示将指针q指向的变量的值赋值给指针p指向的变量。
- B p=q; 表示将指针q的值赋值给指针p。
- C *p=&n1; 表示将指针p指向n1的地址。
- D p=*q; 表示将指针q指向的变量的值赋值给指针p。