C语言中没有指向单个字符的指针吗?

时间:2018-06-15 18:36:29

标签: c

keySet = myMap.keySet();
for each line in the file {
    tokens = line.split(" ");
    for each token in tokens {
        if keySet.contains(token) {
            // Do whatever you want
        }
    }
}

为什么会导致分段错误? 我不能创建指向单个字符的指针吗?

1 个答案:

答案 0 :(得分:5)

是的,你可以,但你的指针c实际上并没有指向任何地方。这意味着当scanf取消引用指针时,您将拥有undefined behavior

这是您使用地址 - 运算符&的地方:

char c;
scanf(" %c", &c);

一些关于你的短语的挑剔"创建指向单个[任何]的指针"。这真的是所有指针,指向单个内容的指针。

字符串通常被视为指向char的指针,但指针实际上仅指向字符串中的第一个字符。程序将其作为字符串处理只是将第一个字符视为数组的第一个元素的约定,该字符由特殊字符终止。