为什么这个程序输出p
和q
?将数组作为指针传递或作为数组传递有什么区别。
#include<stdio.h>
void fun(char i[]){
printf("%c,%c", i[1],i[2]);
}
void fun2(char *i){
printf("\n%c,%c", i,i+1);
}
int main(){
char ar[] = {"Aba"};
fun(ar);
fun2(ar);
return 0;
}
输出:
b,a
p,q
最佳答案
您正在打印第二个函数中指针地址的 ASCII 转换。您必须通过 *i
和 *(i+1)
取消引用指针。
关于c - 数组作为数组和指针 C 传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39183542/