永发信息网

帮忙解释这句C语句

答案:6  悬赏:60  手机版
解决时间 2021-04-27 15:00
  • 提问者网友:留有余香
  • 2021-04-27 07:14

char *num0_10[]={"zero","one","two","three","four","five","six","seven","eight","nine","ten"};

这个语句感觉很奇怪的,定义了指针,怎么后面的初始化是双引号,那不是字符串的标志吗?请教高人

最佳答案
  • 五星知识达人网友:十鸦
  • 2021-04-27 08:04
哦,这句话的意思是这样的,定义了一个字符串数组,由于C语言里面没有字符串类型,所以就用指针来表示,比如说,num0_10[0]存放的是"zero"这个字符串的地址,更为通俗的讲就是,比如我们定义了一个字符串数组char a[]={'z','e','r','o'};在这里a就和num0_10[0]是等价的,num0_10[0][0]就是'z',num0_10[0][1]就是'e',等等以此类推。这个char类型的指针数组num0_10里面的每个元素都保存了一个字符串的地址。
全部回答
  • 1楼网友:持酒劝斜阳
  • 2021-04-27 12:47

这其实可以理解成一个二维数组了。如果不加星号,及不把这个数组定义成指针,那么它就是一个简单的数组而已,也就是一字符串数组,每个数组元素只能是单个的字符。而这样定义就相当于二维数组了,但又不是二维数组。你可以用num0_10[1]来访问字符串one,num0_10[2]访问two。或者你可以把它称作字符串指针。类似于指针指向一维数组,就可以访问一维数组组成的字符串了。

  • 2楼网友:骨子里都是戏
  • 2021-04-27 11:08

定义的是指针数组 *num-10[]

对于C语言 指针的赋值是可以这样做的

char *c;

c="zero";

意思就是把字符串首地址赋值到指针C

这样C就指向了字符串

那么在你的例子里面

所做的其实也是字符串首地址赋值操作

分别对应的是各个字符串的指针,而初始化的元素自然就是字符串了

那么字符串所使用的标号当然是双引号啊“”

{"zero","one","two","three","four","five","six","seven","eight","nine","ten"};

每个元素就是个字符串

  • 3楼网友:神鬼未生
  • 2021-04-27 10:40
在定义数组指针的时候就可以直接给他一个初值,指向一个或者是多个字符串。 char *num0_10[]={"zero","one","two","three","four","five","six","seven","eight","nine","ten"}; 表示是定义了一个字符指针的数组。数组里的每个元素都指向后面相对应的双引号的首字母。 只有在定义字符指针的时候可以直接赋值。。 。。
  • 4楼网友:白昼之月
  • 2021-04-27 10:25
一个字母是字符 用单引号 而你初始化了十一个单词 一个单词是字符串(包含多个字母)当然用双引号
  • 5楼网友:长青诗
  • 2021-04-27 09:05
这是一个数组指针,其中包含十个元素。一个语句完了当然得用分号啊。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯