不带星号的指针变量如何访问该地址的值
时间: 2023-04-01 19:01:40 浏览: 180
不带星号的指针变量可以通过取地址符 & 来获取该变量的地址,然后再通过指针间接访问符 * 来访问该地址的值。例如:int a = 10; int *p = &a; printf("%d", *p); 将输出 10。
相关问题
指针变量带星和不带星的区别是什么
指针变量带星和不带星的区别如下:
1. 带星号的指针变量表示该变量是指向另一个变量的指针,可以通过该变量来访问指向的变量。例如,int* p表示p是一个指向整型变量的指针。
2. 不带星号的指针变量表示该变量是一个指针类型的变量,但不指向任何变量。例如,int* p;表示p是一个整型指针变量,但p目前不指向任何整型变量。
需要注意的是,在对指针变量进行操作时,需要使用星号操作符(*)来访问指针所指向的变量,例如*p表示访问指针p所指向的整型变量的值。
实现变量a的值地址指针指针地址的输出
要输出变量a的值地址、指针、指针地址,可以使用以下代码:
```
#include <stdio.h>
int main() {
int a = 10;
int *p1 = &a;
int **p2 = &p1;
printf("a的值地址:%p\n", &a);
printf("a的指针:%p\n", p1);
printf("a的指针地址:%p\n", &p1);
printf("p1的指针地址:%p\n", &p2);
return 0;
}
```
解释一下:
- `&a` 表示取变量 a 的地址,输出的是该变量的内存地址。
- `p1` 是指向变量 a 的指针,输出的是变量 a 的地址。
- `&p1` 表示取指针 p1 的地址,输出的是指针 p1 的内存地址。
- `&p2` 表示取指针 p2 的地址,输出的是指针 p2 的内存地址。
输出的地址可能是不同的,因为每个变量在内存中的位置不同。
阅读全文