c - 通过函数传递变量 C

标签 c function pointers chars

你好,我刚刚开始学习 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 *aa 被声明为指向 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/

相关文章:

c - 这个声明是什么以及它有什么用处?

c - 我在此程序中得到意外的输出

javascript - react / react Hook : I'm trying to dynamically change the style of an input with a conditional function that triggers when a user leaves an input

c - 如何将结构体指针赋值为null?

使用内存地址在不带指针的 C 函数中更改数组

c - 在 C : Is void* a type?

c - 浮点异常C代码

javascript - JavaScript 中函数内函数 vs 函数返回函数

c++ - 为什么堆栈溢出会导致总线错误 10 而不是段错误

c - 在 C 中连接字符串的安全方法是什么?