C表示法:指向字符数组的指针(字符串)

时间:2011-05-17 21:33:40

标签: c arrays string pointers char

为什么指向char s(即string s)数组的指针如下所示:

char *path

而不是:

char *path[]

或类似的东西?

如何创建指向char而不是string

的指针

3 个答案:

答案 0 :(得分:8)

char *path不是指向字符串的指针,它是指向char的指针。

可能是char *path在语义上指向“字符串”的情况,但这仅仅是对数据的解释。

在c中,字符串通常使用char *,但仅在假设指针指向字符串的第一个字符的情况下,其他字符在内存中后续,直到您到达空终止符。这并没有改变它只是一个指向角色的指针的事实。

答案 1 :(得分:3)

char *path是指向char的指针。它可以用于指向单个char以及指向零终止数组(字符串)中的char

char *path[]是一个指向char的指针数组。

指向char数组的指针是char (*path)[N],其中N(数组的大小)是指针类型的一部分。这样的指针没有被广泛使用,因为在编译时必须知道数组的大小。

答案 2 :(得分:3)

char *path[]是一个指针数组。 char *path是一个指针。

  

如何创建指向char而不是字符串的指针?

C中的'string'只是一个指向char的指针,其约定是以'\ 0'结尾的字符序列的开头。您可以以相同的方式声明指向单个char的指针,您只需要根据它实际指向的数据小心使用它。

这类似于C中的char只是一个范围相当有限的整数的概念。您可以将该数据类型用作数字,作为true / false值,或者作为应在某个点显示为字形的字符。对char变量中的内容的解释取决于程序员。

没有一流的,完整的“字符串”数据类型可以区分C和大多数其他高级语言。我会让你自己决定是否以好的或坏的方式区分C。