如何用二级指针改写? - 爱问答

(爱问答)

如何用二级指针改写?

#include<stdio.h>

#include<stdlib.h>

int main(void){

char *color[5]={"red","blue","yellow","black","green"},*str;

int i;


str=(char *)calloc(10,sizeof(char));

printf("Enter color: ");

scanf("%s",str);

for(i=0;i<5;i++){

if(strcmp(str,color[i])==0){

break;

}

}

 

if(i==5)

printf("Not found");

else

printf("%d is %s",i+1,str);

return 0;

}

--------------------------------------------

改写哪有问题?

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

int main(void){

char **color={"red","blue","green","black","yellow"},*str;

int i;

str=(char *)calloc(10,sizeof(char));

printf("Enter color: ");

scanf("%s",str);

for(i=0;i<5;i++){

if(strcmp(str,*(color+i))==0){

printf("%d is %s",i+1,str);

break;

}

if(i==5)

printf("Not found");

free(str);

return 0;

}


c语言不支持二级指针的直接初始化的,也就是你肯定不能用

  char **color={"red","blue","green","black","yellow"};

(语法上只是警告,但结果完全不对的)

正确的做法(像你的程序用二级指针是多此一举的)

如何用二级指针改写?


下一篇:求大神指点VBA代码,如何将内容列中的文字,自动添加批注至奖惩列,同一行的单元格内。

上一篇:我把CPU进行降频温度也会随之降低吗

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?