为什么指向char
s(即string
s)数组的指针如下所示:
char *path
而不是:
char *path[]
或类似的东西?
如何创建指向char
而不是string
?
答案 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。