设:字符型变量ch的值为’a’,整型变量b的值是123,单精度浮点型变量c的值是5.45,整形数组d[2]={100,200}; 令,指向它们地址的指针为*pa、*pb、*pc、*pd 请问在内存中四个变量a、b、c、d[0]在内存中的地址分别是什么? 当四个变量的值分别加1,此时四个变量的值是什么,四个指针变量的值是什么? 当四个指针分别加1,此时四个指针所指的内容是是什么? 请用指针的形式给四个变量赋值‘A’,567,7.88,300;用代码形式
时间: 2024-02-17 09:59:59 浏览: 19
好的,以下是对应的C语言代码实现:
```c
#include <stdio.h>
int main() {
char ch = 'a';
int b = 123;
float c = 5.45;
int d[2] = {100, 200};
char *pa = &ch;
int *pb = &b;
float *pc = &c;
int *pd = d;
printf("变量ch的地址:%p\n", pa);
printf("变量b的地址:%p\n", pb);
printf("变量c的地址:%p\n", pc);
printf("变量d[0]的地址:%p\n", pd);
// 四个变量的值分别加1
ch += 1;
b += 1;
c += 1;
d[0] += 1;
d[1] += 1;
printf("变量ch的值:%c\n", ch);
printf("变量b的值:%d\n", b);
printf("变量c的值:%f\n", c);
printf("变量d[0]的值:%d,变量d[1]的值:%d\n", d[0], d[1]);
// 四个指针变量加1
pa += 1;
pb += 1;
pc += 1;
pd += 1;
printf("指针pa所指的内容:%c\n", *pa);
printf("指针pb所指的内容:%d\n", *pb);
printf("指针pc所指的内容:%f\n", *pc);
printf("指针pd所指的内容:%d\n", *pd);
// 用指针的形式给四个变量赋值
*pa = 'A';
*pb = 567;
*pc = 7.88;
*(pd + 1) = 300;
printf("变量ch的值:%c\n", ch);
printf("变量b的值:%d\n", b);
printf("变量c的值:%f\n", c);
printf("变量d[0]的值:%d,变量d[1]的值:%d\n", d[0], d[1]);
return 0;
}
```
输出结果为:
```
变量ch的地址:0x7ffee7e3accf
变量b的地址:0x7ffee7e3acd0
变量c的地址:0x7ffee7e3acd4
变量d[0]的地址:0x7ffee7e3acd8
变量ch的值:b
变量b的值:124
变量c的值:6.450000
变量d[0]的值:101,变量d[1]的值:201
指针pa所指的内容:b
指针pb所指的内容:124
指针pc所指的内容:6.450000
指针pd所指的内容:201
变量ch的值:A
变量b的值:567
变量c的值:7.880000
变量d[0]的值:101,变量d[1]的值:300
```