有以下程序: #include main() { int a=2,*ptr; ptr=&a; *ptr=8; a=(*ptr)++; printf("%d,%d\n",a,*ptr); } 程序运行后的输出结果是( )。

admin2015-07-30  36

问题 有以下程序:
#include
main()
{
int a=2,*ptr;
ptr=&a;
*ptr=8;
a=(*ptr)++;
printf("%d,%d\n",a,*ptr);
}
程序运行后的输出结果是(    )。

选项 A、9,9
B、8,9
C、2,4
D、0,4

答案A

解析 题干中定义一个指针变量ptr,再把a的地址值赋给变量ptr,此时a和*ptr代表同一内存单元中的值;*ptr=8表示把a和*ptr的值修改为8;a=(*ptr)++表示把指针ptr对应地址单元里的值赋给a,再将ptr对应地址单元里的值加1,因此*(ptr)值为9,同时a也为9,故答案为A选项。
转载请注明原文地址:https://kaotiyun.com/show/QoDp777K
0

最新回复(0)