c - 带有 char 数组参数的函数

标签 c arrays pointers parameter-passing

我正在尝试用 C 语言为 PIC 微 Controller 编写一个打印文本的函数(我认为它基于 gcc)。

void print(char[] text);

void print(char[] text)
{
    for(ch = 0; ch < sizeof(text); ch ++)
    {
        do_something_with_character(text[ch]);
    }
}

并这样调用它:

print("some text");

我收到关于错误括号的编译器投诉。

  1. 这有什么问题吗?

  2. 在这种情况下如何使用字符数组指针?

最佳答案

正确的语法是

void print(char text[])

void print(char *text)

print() , 你不能使用 sizeof运算符找出字符串的长度 text , 你需要使用 strlen() (首先包括<string.h>)或测试是否text[ch]\0 .

关于c - 带有 char 数组参数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23602039/

相关文章:

c - 我正在尝试在我的 C 程序登录中应用 do while 循环,但我不明白

c - 使用一个函数作为另一个函数的参数时的“error: invalid use of void expression”

c - 了解 C 中的数组指针初始化语法

c++ - 用声明的常量声明数组

c - 指向指针数组的指针,其中每个指针都指向数组

pointers - 使用非指针值调用指针接收器方法

c++ - 声明/定义和 vector 的错误

c - 二叉搜索树 (BST) - 遍历搜索

java - ArrayList 到 ArrayList<类型>

c - 数组指针已初始化,但无法为其分配任何值?程序