指向字符串的指针数组定义如下:
char *array[];
但这看起来像一个指向单个字符的指针数组。这是一个指向字符串的指针数组?
C 如何知道指针指向字符串的第一个字符,而不是单个字符?
显然这是不正确的,但为什么语法不是这样的:
char[] *array[];
它看起来像一个指向字符数组(字符串)的指针数组。
C 如何知道指针指向字符串的第一个字符,而不是单个字符?
他不知道。由程序员知道这一点。 语法是一样的。
#include <stdio.h>
#include <string.h>
int main(void)
{
char* ptr[2];
char a = 'A';
ptr[0] = &a;
ptr[1] = "Hello!";
putchar(*ptr[0]);
puts(ptr[1]);
return 0;
}
指针可以指向字符,也可以指向字符串的第一个字符。