有以下程序 #include <stdio.h> main( ) { int a = 2, *ptr; ptr = &a; *ptr = 8; a = (*ptr) ++; printf("%d,%d\n", a, *pt

admin2020-06-16  22

问题 有以下程序
#include <stdio.h>
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://jikaoti.com/ti/XsG0FFFM
0

最新回复(0)