麻烦问下C语言26题和27题A项.第一题不懂return(y-x-1)的含义.A项不懂为什么用*p而不是p,结果就是错误的.

来源:学生作业帮助网 编辑:作业帮 时间:2024/07/13 00:39:59
麻烦问下C语言26题和27题A项.第一题不懂return(y-x-1)的含义.A项不懂为什么用*p而不是p,结果就是错误的.
xSmoV+VJiJll T1 DM\ d ihJ`H;um1?/\hH`{syvM|v;n$x>}9;-"&Š]]Is}p|eB}m aKN==nt3#'ǸwW;p](gc =eВgR??W~xɬL2r&Szr9a9Xe3d*!/s/=I$2xTQRЂBAMCHKQD"a%IUMEA5NHDIQUL, 'wZZZx2/E䈀pTEqAS;jqqwGN9;xdq2yvn*/%ն:?x@ e=GҥT^CԿb OxO{yaJs&ީ@=vf6NkpU:V%#iBol#|y:,!sZr/$p+Czf1_y#ЭBmz{ܫzkcJ܍o{QG'~G7o3xxpz9:"_ڗd;e{(af!?qI<|&9.Fiqs9Pq1V^*u<-j+VaMֿkԮbc`VǫWЉ'NO+|86FԧAlmçXD">)L2jZeR,3 <_/z/NCz%HKLq Bu6et9=~03

麻烦问下C语言26题和27题A项.第一题不懂return(y-x-1)的含义.A项不懂为什么用*p而不是p,结果就是错误的.
麻烦问下C语言26题和27题A项.第一题不懂return(y-x-1)的含义.A项不懂为什么用*p而不是p,结果就是错误的.

麻烦问下C语言26题和27题A项.第一题不懂return(y-x-1)的含义.A项不懂为什么用*p而不是p,结果就是错误的.
1、x是字符串开始的地址,y由于while中的*y++的判断,所以当循环结束的时候y指向了所求字符串结束符之后的位置,y-x表示y指向的位置与x指向的位置存储单元个数,由于y多指了一个,所以又进行了减去1的计算.由于字符串的每个存储单元的大小都是一个字节,所以return返回的恰好是x指向的字符串的长度;注:*y++等价于 *(y++)
2、选A是错误的,因为p没有明确的指向(这个函数的原意是定义一个指针变量p,然后让它所指向的单元作为中间变量以实现x和y所指向单元值的交换).
如果把函数改成
funa( int *x, int *y )
{
int p;
p = *x; *x = *y; *y = t;
}
就可以选A了.