A是先取函数f返回的内存单元(参数是&i即i的地址)中存储的值,并作更改(改为6)
B项 i+6 是算术表达式,不能直接取地址,必须使用变量保存才能取地址
C项 是定义一个指向整型的指针p,并赋值为函数f的返回值(该函数返回一个指针,也就是内存地址)
D项 直接以&i为参数执行函数f,返回值不起任何作用
B是错误的
i+6是表达式 对表达式不可以有&取地址操作。因为表达式没有自己的地址。
这个操作只能是对变量的。
A 在函数返回指针指向的空间,赋值为6
C和D都是很标准的调用,传入一个指针&i ,区别在于 C用返回值做了赋值,而D忽略了返回值。这两种都是合法的。