int*p=a和int*p=&b这两个p分别指的什么
时间: 2024-05-12 08:13:10 浏览: 23
假设a和b都是int类型的变量,则:
- int* p = a:这行代码将p指针指向了a变量的地址,也就是说p指向了a变量所在的内存地址,并且可以通过*p来访问a变量的值。
- int* p = &b:这行代码将p指针指向了b变量的地址,也就是说p指向了b变量所在的内存地址,并且可以通过*p来访问b变量的值。
需要注意的是,a和b必须先定义并且分配了内存空间,否则这两行代码会出现错误。例如:
```
int a = 10;
int b = 20;
int* p1 = a; // 错误:a是一个int类型的变量,不是一个指针类型
int* p2 = &b; // 正确:&b是b变量的地址,可以通过指针来访问b变量的值
```
相关问题
int a,b,*p=&a; a=0x55; *p=1000; p=&b; b=0xaa;
这段代码的作用是定义了两个整型变量 `a` 和 `b`,以及一个指向 `a` 的指针 `p`。接下来,对变量和指针进行了一系列操作:
1. `a` 被赋值为十六进制值 `0x55`,即十进制值 `85`。
2. 通过指针 `p` 修改了 `a` 的值,将其赋值为十进制值 `1000`。
3. 将指针 `p` 指向了变量 `b`。
4. `b` 被赋值为十六进制值 `0xaa`,即十进制值 `170`。
最终,变量 `a` 的值被修改为 `1000`,变量 `b` 的值被修改为 `170`。指针 `p` 最后指向了变量 `b`。
void fun_b(int *x, int *y) {int *p; *x=*y;*y=*x; )
这是一个交换两个整型变量值的函数,函数名为fun_b,参数为两个指向整型变量的指针x和y。函数体内定义了一个指向整型变量的指针p,然后通过指针操作交换了x和y指向的变量的值。具体实现如下:
```c
void fun_b(int *x, int *y)
{
int *p;
p = x;
x = y;
y = p;
}
```
需要注意的是,函数内部的指针操作只是交换了指针本身的值,并没有交换指针所指向的变量的值。正确的实现方式应该是:
```c
void fun_b(int *x, int *y)
{
int temp;
temp = *x;
*x = *y;
*y = temp;
}
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)