c语言 第8题c为什么=18?第九题a为什么=5??

Python019

c语言 第8题c为什么=18?第九题a为什么=5??,第1张

第八题,c获取sm函数的返回值,就是a+b的结果所以是18;

第九题,你看fn(a,&b)这里的b是地址传递参数(就是给函数自身的存储地址,在函数中会影响自身),结果是16;而a的话,他是值传递参数(就是自己copy一个副本,把副本传递给函数调用,副本不影响自身);所以a就是5;

这里主要就是考地址传递参数和值传递参数的区别

*(p+(i*每行列数+j))就是 array[i][j]

假设定义array时的长度为[10][20]

则每行列数就是20.

p=&array[0][0]的时候。

*(p+x)就是数组array中第x个字节。

x=i*20+j

对应的array[1][2] 等效于 *(p+(1*20+2)) 或 *(p+22)