求此C语言题详解

[复制链接]
查看11 | 回复4 | 2017-9-23 16:14:14 | 显示全部楼层 |阅读模式
想了半天真不知道怎么详解回去结合函数调用那部分再看看C语言指针都是些非常基础的东西、 void main(){ int a=1,b=2,c=3;sub(a,b,&a); //调用sub(int x,int y,int *z)执行完毕a=1 (*z=y-x(即a=b-a (z为指针变量 在此处指向变量a的地址&a*z即变量a))),b=2,c=3sub(b,a,&b); //调用sub(int x,int y,int *z)执行完毕a=1,b=-1(原理同上),c=3sub(a,b,&c); //调用sub(int x,int y,int *z)执行完毕a=1,b=-1,c=-2(...
回复

使用道具 举报

千问 | 2017-9-23 16:14:14 | 显示全部楼层
每次调用之后只有sub函数的最后一个参数的值有改变,因为有指针指向,按执行步骤,会相互影响,所以执行第一步之后,a的值为1,执行第二步之后b的值为-1,执行第三步之后,c的值为-2,所以答案是C。...
回复

使用道具 举报

千问 | 2017-9-23 16:14:14 | 显示全部楼层
SUB函数只有修改Z会影响到传入变量,接下来是3次操作以后的值a b c1 2 31 -1 31 -1 -2选C...
回复

使用道具 举报

千问 | 2017-9-23 16:14:14 | 显示全部楼层
C sub(a,b,&a) a = 2 - 1 = 1sub(b,a,&b)b = a - b = 1 - 2 = -1sub(a,b,&c)c = b -a = -1 - 1 = -2...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行