char *num0_10[]={"zero","one","two","three","four","five","six","seven","eight","nine","ten"};
这个语句感觉很奇怪的,定义了指针,怎么后面的初始化是双引号,那不是字符串的标志吗?请教高人
char *num0_10[]={"zero","one","two","three","four","five","six","seven","eight","nine","ten"};
这个语句感觉很奇怪的,定义了指针,怎么后面的初始化是双引号,那不是字符串的标志吗?请教高人
这其实可以理解成一个二维数组了。如果不加星号,及不把这个数组定义成指针,那么它就是一个简单的数组而已,也就是一字符串数组,每个数组元素只能是单个的字符。而这样定义就相当于二维数组了,但又不是二维数组。你可以用num0_10[1]来访问字符串one,num0_10[2]访问two。或者你可以把它称作字符串指针。类似于指针指向一维数组,就可以访问一维数组组成的字符串了。
定义的是指针数组 *num-10[]
对于C语言 指针的赋值是可以这样做的
char *c;
c="zero";
意思就是把字符串首地址赋值到指针C
这样C就指向了字符串
那么在你的例子里面
所做的其实也是字符串首地址赋值操作
分别对应的是各个字符串的指针,而初始化的元素自然就是字符串了
那么字符串所使用的标号当然是双引号啊“”
{"zero","one","two","three","four","five","six","seven","eight","nine","ten"};
每个元素就是个字符串