若有以下程序 #include<stdio.h> void sp(int *a) { int b=2; *a = *a * 2; printf("%d,", *a); a=&b; *a = *a * 2; printf("%d,", *a); } main

admin2020-07-28  43

问题 若有以下程序
#include<stdio.h>
void sp(int *a) {
int b=2;
*a = *a * 2;
printf("%d,", *a);
a=&b;
*a = *a * 2;
printf("%d,", *a); }
main() {
int k=3;
sp(&k);
printf("%d\n", k); }
则程序的输出结果是

选项 A、6,4,6
B、6,4,3
C、6,12,12
D、9,4,9

答案A

解析 本题考查了指针作为函数的参数,可以接收实参变量的地址,改变实参的值。主函数调用sp(&k),执行sp函数a指向向k,执行语句*a = *a * 2后a指向空间的值k的值为6,改变a的指向以后,此时a指向b,则执行*a = *a * 2以后,a指向空间b的值为4。调用结束返回主函数,输出k的值为6。
转载请注明原文地址:https://jikaoti.com/ti/CrD0FFFM
0

最新回复(0)