已知:int x 则下面指针变量的语句正确的是______。 int pb=&x; int *pb=x; int *pb=&x; *pb=*x;
时间: 2023-12-02 12:05:47 浏览: 45
正确的语句是:
```c++
int *pb = &x;
```
这句话定义了一个指向整型变量x的指针pb,并将pb初始化为x的地址。
其余三句话都有语法错误:
- `int pb = &x;` 这句话中左边定义的是一个整型变量,右边给出的是一个地址,类型不匹配。
- `int *pb = x;` 这句话中右边给出的是一个整型变量的值,不是地址。
- `*pb = *x;` 这句话中右边的*x是一个未定义的变量名。
相关问题
已知:int k=7, x=12; 则执行语句( )后x的值为0。
一种可能的执行语句是:
```c++
x = x % k;
```
因为 12 % 7 的结果是 5,所以执行完上述语句后,x 的值为 5。但是题目要求 x 的值为 0,因此我们需要在上述语句的基础上再执行一次取模运算,即:
```c++
x = (x % k) % k;
```
这样就可以保证 x 的值为 0。
已知 int a[4],*p; ,则语句 p=&a;是正确的。
不正确。给指针赋值时,需要将其指向一个合法的内存地址。在这种情况下,p是一个指向int类型的指针,而&a是一个数组a的地址。应该将p指向数组的第一个元素,而不是整个数组的地址。
正确的赋值语句应该是:
```c
p = &a[0];
```
或者可以简写为:
```c
p = a;
```
这样p就指向了数组a的第一个元素的地址。注意,数组名a本身就代表了数组的首地址,所以可以将a直接赋值给p。