#include <stdio.h> void func(char *p) { p = p + 1; } int main() { char s[] = {'1', '2', '3', '4'}; func(s); printf("%c", *s); return 0; }
2
编译错误
1
无法确定
这道题有个陷阱,初一看形参是个指针,潜意识就会觉得地址传递,形参能改变实参,但是实参也是一个指针变量,所以实际上还是值传递,形参在栈里新开辟了一个字节的空间,存放了数组的首地址。外部函数里面虽然指向了第二个元素,但是没有改变实参
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题