int *p, a=10, b=1; p=&a; a=*p+b; 执行该程序段后,a的值为____
时间: 2024-04-05 18:34:20 浏览: 25
执行该程序段后,`a`的值为`11`。
程序段中的第一句`p=&a;`表示将指针`p`指向变量`a`的地址。
第二句`a=*p+b;`表示先取出指针`p`指向的变量`a`的值(即`a`的值),再加上变量`b`的值,最后将结果赋值给变量`a`。因为`p`指向的是变量`a`的地址,所以`*p`就是`a`的值,所以`a`的值为`10+1=11`。
相关问题
有如下程序段 int *p a=10,b=1; p=&a; a=*p+b; 执行该程序段后,a的值为
11。程序的执行过程如下:
1. 定义整型指针变量 p 和整型变量 a、b,将 a 赋值为 10,将 b 赋值为 1。
2. 将 p 的值设置为变量 a 的地址,即 p 指向 a 的内存地址。
3. 执行 a=*p+b;首先会通过指针 p 获取 a 的值(即 10),然后加上变量 b 的值(即 1),最终将结果 11 赋值给变量 a。
4. 执行完该语句后,变量 a 的值变为 11。
有如下程序段 int *p,a=10,b=1; p=&a; a=*p+b; 执行该程序段后,a的值为() A. 11 B. 12 C. 10 D. 13
执行该程序段后,`a` 的值为 11,选项 A 正确。
首先,定义了一个指向整型变量的指针 `p`,并将 `p` 指向变量 `a` 的地址。然后,赋值语句 `a = *p + b;` 将变量 `a` 赋值为指针 `p` 所指向的整型变量的值加上变量 `b` 的值。
因为 `p` 指向变量 `a` 的地址,所以 `*p` 就是变量 `a` 的值。因此,赋值语句实际上是将变量 `a` 的值加上变量 `b` 的值,并将结果赋值给变量 `a`。
因为变量 `a` 的初始值是 10,变量 `b` 的初始值是 1,所以执行完赋值语句后,变量 `a` 的值变为 11。
因此,`a` 的值为 11,选项 A 正确。