将const char *传递给C中的函数

时间:2013-11-08 15:45:59

标签: c char const

我正在尝试编写一个该函数将const char *作为参数,我无法弄清楚如何以有用的方式将这种数据传递给函数。如果我有功能:

void tokenize(const char * c) { }

我想用硬编码的值来调用这个函数,比如说反斜杠,最好的方法是什么?如何将硬编码值转换为const char *

2 个答案:

答案 0 :(得分:5)

使用字符串文字代替const char *参数是完全合法的:

tokenize("\\");

更具说明性的示例是存储指向该字符串的指针,然后传递该指针:

const char *token = "\\";
tokenize(token);

但是,字符串文字与char *不兼容,即使编译器可能允许它。这与字符串文字的存储方式有关 - 它们通常位于内存的只读区域,尝试写入它们会导致未定义的行为,很可能是某种保护错误。

答案 1 :(得分:0)

您可以使用字符串文字,如"\\",并将其作为参数传递给函数。