如果知道在一个char数组中,我需要提前知道这个数组可以容纳多少个字符,如果我在同一个变量中更改字符串,这将导致问题。那么,指向字符的指针总是更好吗?
以下是主要区别:
- 如果使用指向字符的指针,则有两种选择:
char *s; // You need to allocate memory to this later, at runtime.
char *s = "Hello World"; // This is a read-only string. You cannot change this later.
- 如果使用char数组,则需要定义严格的长度
char c[10]; // Define a buffer of max 10 chars. If last char is , it's a c string.
因此,如果您想要一个只读字符串,请使用指向char的只读指针。
如果您想要一个严格的长度,请使用char数组。
如果要在运行时分配内存,请使用指向char的指针。