c语言先定义两个整形变量并给它们赋予初值,在定义两个指针变量 分别指向这两个整形变量,输出这两个指针变量所指向的变量的值
时间: 2023-12-03 20:46:24 浏览: 61
代码如下:
```c
#include <stdio.h>
int main() {
int a = 10, b = 20;
int *p1 = &a, *p2 = &b;
printf("p1指向的变量的值为:%d\n", *p1);
printf("p2指向的变量的值为:%d\n", *p2);
return 0;
}
```
输出结果为:
```
p1指向的变量的值为:10
p2指向的变量的值为:20
```
这里定义了两个整形变量a和b并分别赋值为10和20,然后定义了两个指针变量p1和p2,分别指向变量a和b。最后通过*p1和*p2来获取p1和p2所指向的变量的值并输出。
相关问题
c语言先定义2个整型变量并给它们赋初值,再定义2个指针变量,分别指向这两个整型变量,输出这两个指针变量所指向的变量的值
c语言代码如下:
```c
#include <stdio.h>
int main() {
int a = 10, b = 20;
int *p1, *p2;
p1 = &a;
p2 = &b;
printf("a=%d, b=%d\n", *p1, *p2);
return 0;
}
```
输出结果为:
```
a=10, b=20
```
解释一下代码:
在主函数中,首先定义了两个整型变量 `a` 和 `b` ,并分别初始化为 10 和 20。
然后定义了两个指针变量 `p1` 和 `p2` ,它们都是指向整型变量的指针。
接着将 `p1` 指向 `a` ,将 `p2` 指向 `b` 。
最后,通过输出 `p1` 和 `p2` 所指向的变量的值,即 `*p1` 和 `*p2` ,得到了结果。
用c语言输入一个整数赋值给某个变量,输出该变量的值和地址。并定义一个指针变量,要求该指针的初值为此变量的地址,要求输出指针变量所指向存储单元的值,指针变量的值,指针变量的地址,指针变量所占的字节数。
好的,我来回答你的问题。以下是代码实现:
```c
#include <stdio.h>
int main() {
int num; // 声明整型变量num
int *ptr; // 声明指针变量ptr,用于指向num的地址
printf("请输入一个整数:");
scanf("%d", &num); // 输入整数并赋值给num
printf("num的值为:%d\n", num);
printf("num的地址为:%p\n", &num);
ptr = # // 将num的地址赋值给ptr
printf("ptr所指向的存储单元的值为:%d\n", *ptr);
printf("ptr的值为:%p\n", ptr);
printf("ptr的地址为:%p\n", &ptr);
printf("ptr所占的字节数为:%lu\n", sizeof(ptr));
return 0;
}
```
运行结果:
```
请输入一个整数:123
num的值为:123
num的地址为:0x7fff5fbff7bc
ptr所指向的存储单元的值为:123
ptr的值为:0x7fff5fbff7bc
ptr的地址为:0x7fff5fbff7b0
ptr所占的字节数为:8
```
解释一下代码实现:
1. 首先声明了一个整型变量`num`和一个整型指针变量`ptr`;
2. 通过`scanf`函数获取用户输入的整数,并将其赋值给`num`变量;
3. 使用`printf`函数分别输出`num`的值和地址;
4. 将`num`的地址赋值给`ptr`指针变量;
5. 使用`*ptr`获取`ptr`指向的存储单元的值,并使用`printf`函数输出;
6. 使用`printf`函数分别输出`ptr`的值、地址和占用的字节数。其中,`&ptr`获取的是`ptr`本身的地址,而不是指向的存储单元的地址。
希望这个例子可以帮助你理解指针的用法。