指针的使用(3) 有如下变量定义: double a; double *p, *q; 假设 p 指向 a,则使 q 指向 a 的正确语句是 ▁▁▁▁▁ 。 A. *&q = &a; B. *q = *p; C. &q = &p; D. q = &*p;
时间: 2024-05-28 20:11:30 浏览: 65
正确答案是 D. q = &*p;
解析:
&p 是指向指针 p 的指针,类型为 double **,与 q 的类型 double * 不匹配。
*q = *p 将 p 指向的值赋给 q,但是 p 指向的是变量 a,而 q 并没有指向任何变量。
*&q = &a 将变量 a 的地址赋值给指向指针 q 的指针,但是 *&q 等价于 q,左右两边类型不匹配。
q = &*p 将 p 指向的变量 a 的地址赋给指针 q,此时 q 和 p 指向同一个变量 a,且类型匹配。
相关问题
编写函数,拆分出一个实数的整数与小数部分。 函数接口定义: void splitreal ( double x, int *intpart, double *fracpart );
好的,以下是函数的实现代码:
```c
void splitreal(double x, int *intpart, double *fracpart) {
*intpart = (int)x; // 取整数部分,强制类型转换
*fracpart = x - *intpart; // 取小数部分
}
```
函数使用了指针参数来返回整数部分和小数部分。调用时需要传入一个 double 类型的实数 x,以及指向整数部分和小数部分的指针。函数会将整数部分和小数部分分别存入指针所指向的变量中。
例如,假设要拆分实数 3.14159,可以这样调用函数:
```c
int intpart;
double fracpart;
splitreal(3.14159, &intpart, &fracpart);
printf("整数部分:%d,小数部分:%f\n", intpart, fracpart);
```
输出结果为:
```
整数部分:3,小数部分:0.141590
```
希望能够帮到你!
怎么把(double *)buffer赋值给非静态外部成员
如果要将`(double *)buffer`赋值给非静态外部成员,可以将该成员定义为指向`double`类型的指针,并在需要的时候将其指向`(double *)buffer`所指向的内存空间。
以下是一个示例代码:
```c++
// 外部全局变量定义
double *externalMember = nullptr;
int main() {
// 假设 buffer 是一个 double 类型的数组
double buffer[10] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0};
// 将 externalMember 指向 buffer
externalMember = buffer;
// 访问 externalMember 指向的内存空间
for (int i = 0; i < 10; i++) {
std::cout << externalMember[i] << " ";
}
std::cout << std::endl;
return 0;
}
```
在上述代码中,首先将外部全局变量`externalMember`定义为指向`double`类型的指针,并初始化为`nullptr`。然后,在`main`函数中,将`externalMember`指向`buffer`数组的首地址,即`(double *)buffer`。最后,通过`externalMember`指向的内存空间访问`buffer`数组中的元素。
需要注意的是,在将`externalMember`指向`buffer`之前,需要确保`buffer`数组已经被初始化。此外,如果`externalMember`指向的内存空间是动态分配的,需要在不需要使用该内存空间时及时进行释放,避免内存泄漏问题。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)