你好,我刚刚开始学习 C,我想知道为什么我在这里遇到问题.. 我希望传递一个字符指针
char *temp;
进入函数,即调用函数
checkIfUniqueCourseNo(temp,k);
有原型(prototype)
int checkIfUniqueCourseNo(char checkchar[4],int);
和一个函数头
int checkIfUniqueCourseNo(char checkchar[4], int k)
我确信我在这里做了一些非常愚蠢的事情,但我不知道如何解决它:( 提前致谢。 ps 我的错误是 checkchar[4] 输出 P...
示例---
temp = "123A"
checkIfUniqueCourseNo(temp,k);
int checkIfUniqueCourseNo(char checkchar[4], int k){
printf("CheckifUniqueCourse\n");
printf("Check Value = %c \n", checkchar);
return 0;
}
输出 = 检查值 = P
最佳答案
temp = "123A"
checkIfUniqueCourseNo(temp,k);
int checkIfUniqueCourseNo(char checkchar[4], int k){
printf("CheckifUniqueCourse\n");
printf("Check Value = %c \n", checkchar);
^^^^^^^^^
return 0;
}
如果您尝试打印 checkchar
的第一个字符,那么您需要将此行更改为
printf("Check Value = %c\n", *checkchar);
或
printf("Check Value = %c\n", checkchar[0]);
在函数参数声明的上下文中,T a[N]
和 T a[]
相当于 T *a
; a
被声明为指向 T
的指针,而不是 T
的数组。
你写的时候
printf("Check Value = %c\n", checkchar);
你对printf
撒了谎;您说参数应该是 char
类型,但您传递了 char *
。因此会出现虚假输出。
如果您想打印整个字符串 “1234”
,那么您需要将该行更改为
printf("Check value = %s\n", checkchar);
这次我们使用 %s
转换说明符告诉 printf
checkchar
指向以 0 结尾的 char 数组
(又名字符串)。
关于c - 通过函数传递变量 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10352726/