下列程序的输出结果是 -10 . int c[ ]={10,0,-10}; int *k=c+2; printf(“%d”,*k--); 帮忙分析一下吧.

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/06 05:15:05
下列程序的输出结果是 -10 . int c[ ]={10,0,-10}; int *k=c+2; printf(“%d”,*k--); 帮忙分析一下吧.

下列程序的输出结果是 -10 . int c[ ]={10,0,-10}; int *k=c+2; printf(“%d”,*k--); 帮忙分析一下吧.
下列程序的输出结果是 -10 . int c[ ]={10,0,-10}; int *k=c+2; printf(“%d”,*k--); 帮忙分析一下吧.

下列程序的输出结果是 -10 . int c[ ]={10,0,-10}; int *k=c+2; printf(“%d”,*k--); 帮忙分析一下吧.
1: int c[ ]={10,0,-10};
这是定义了一个一维数组C长度为3(在这里注意长度strlen与大小sizof是不一样的,前一个是说数组中的元素个数,后一个是说元素在内存中占的字节大小)数组元素为10,0,-10.
2:int *k=c+2; printf(“%d”,*k--);
定义了一个整型指针k并将c+2(这是数组指针的移位,移到后两位-10,注意数组名代表数组的首地址)的地址赋值给k.而printf的格式字符串中的(*k--)在这里你要清楚*k--的运算.先算(*k)然后再使k指向的地址减一.因此先算*k的值并打印出来.
大哥给点分吧 纯手打的 不明白的话还可以再问我哈!呵呵