对比两者的差异,为什么后面一个报错?

weixin_38068204 2019-03-26 05:42:07
char *s ="开源中国"
char *prgv[]= {"开源中国","hello","world",NULL};
char **avgr;
*avgr =prgv[0];//报错,因为 *avgr 的类型是指针,prgv0的类型是字符型。类型不同,不能赋值

如果,这样解释的话,那么 "开源中国"也是字符型啊,为什么

char *s ="开源中国"  就可以呢?

当然有人解释说,s 指向了“开源中国”字符串的首地址

prgv[0]对应字的符串“开源中国”,为什么我不能理解为 *avgr指向了“开源中国”字符串的首地址?

 

 
...全文
24 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38077132 2019-03-26
  • 打赏
  • 举报
回复
引用来自“tcxu”的评论 你的代码没错。你所指的报错,是不会出现的。*avgr就是指向了“开源中国”字符串的首地址。以下代码为证。 prgv 是 字符指针数组。 数组中的每一个指针,指向一个给定的字符串。比如,prgv[ 1 ] 指向字符串"hello"。 avgr 是一个指向字符指针的指针,保存着一个字符(串)指针的地址。这个地址,可以从 *avgr 得到。 *avgr =prgv[ 0 ]; 代码没有错误。执行这行代码之后,字符串 "开源中国" 的地址,即此串的首地址,就赋予 *avgr。 
#include<stdio.h>
int main(){
char *s ="开源中国";
char *prgv[]= {"开源中国","hello","world",NULL}; //prgv 是字符指针数组。
char **avgr; //argr 是一个指向字符指针的指针
*avgr =prgv[ 0 ]; /*没错,*avgr 的类型是字符指针,prgv[ 0 ]的类型也是字符指针型。
执行此行代码,使得 *avgr 指向 prgv[ 0 ] 所指的字符串"开源中国"。*/
printf("%s\n", *avgr); //输出 prgv[ 0 ]所指的字符串 "开源中国"
return 0;
} 输出:开源中国 你的分析错啦,我这边是报错的,我这边修改了下,就可以了 #include <stdlib.h> #include<stdio.h> int main(){         char *s ="aaaa";         char *prgv[]= {"aaaa","hello","world",NULL}; //prgv          char **avgr; //argr          avgr = (char **) malloc(sizeof(char**));         *avgr =prgv[ 0 ];         printf("%s\n", *avgr);      return 0; }
weixin_38076769 2019-03-26
  • 打赏
  • 举报
回复
你的代码没错。你所指的报错,是不会出现的。*avgr就是指向了“开源中国”字符串的首地址。以下代码为证。 prgv 是 字符指针数组。 数组中的每一个指针,指向一个给定的字符串。比如,prgv[ 1 ] 指向字符串"hello"。 avgr 是一个指向字符指针的指针,保存着一个字符(串)指针的地址。这个地址,可以从 *avgr 得到。 *avgr =prgv[ 0 ]; 代码没有错误。执行这行代码之后,字符串 "开源中国" 的地址,即此串的首地址,就赋予 *avgr。 
#include<stdio.h>
int main(){
char *s ="开源中国";
char *prgv[]= {"开源中国","hello","world",NULL}; //prgv 是字符指针数组。
char **avgr; //argr 是一个指向字符指针的指针
*avgr =prgv[ 0 ]; /*没错,*avgr 的类型是字符指针,prgv[ 0 ]的类型也是字符指针型。
执行此行代码,使得 *avgr 指向 prgv[ 0 ] 所指的字符串"开源中国"。*/
printf("%s\n", *avgr); //输出 prgv[ 0 ]所指的字符串 "开源中国"
return 0;
} 输出:开源中国

476

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧