精选问答
C语言题目求解!对于char **pstr; 以下正确的是: A、*pstr="hi" B、pstr="hi" C、**pstr="hi" 给出答案并给出让我信服的理由吧!切磋切磋

2019-05-27

C语言题目求解!对于char **pstr; 以下正确的是: A、*pstr="hi" B、pstr="hi" C、**pstr="hi" 给出答案并给出让我信服的理由吧!切磋切磋
优质解答
对于这类问题,单从语法上分析,程序执行情况会有所不同, char **pstr;定义的是一个char类型的二级指针;赋值的条件是类型相同,或者类型之间可以自动转换 则有 1)*pstr,用*解除了一级指针,故*pstr是一个指向char类型的指针。即有*pstr类型是char *,与,"hi"它的类型是char [],它可以转换成char *,可以赋值。 同char *p,a[5];p=a类似;语法上说它是对的 2)pstr是一个二级指针,它的类型是char **,"hi"它的类型是char [],它可以转换成char *,但显然char **与char*之间不能相互转换,故其实错误的。 3)**pstr,用**解除了指针,它就是char类型的,与2)同理,char 与 char[]或char *显然是不能相互转换,故其实错误的 对于这类问题,单从语法上分析,程序执行情况会有所不同, char **pstr;定义的是一个char类型的二级指针;赋值的条件是类型相同,或者类型之间可以自动转换 则有 1)*pstr,用*解除了一级指针,故*pstr是一个指向char类型的指针。即有*pstr类型是char *,与,"hi"它的类型是char [],它可以转换成char *,可以赋值。 同char *p,a[5];p=a类似;语法上说它是对的 2)pstr是一个二级指针,它的类型是char **,"hi"它的类型是char [],它可以转换成char *,但显然char **与char*之间不能相互转换,故其实错误的。 3)**pstr,用**解除了指针,它就是char类型的,与2)同理,char 与 char[]或char *显然是不能相互转换,故其实错误的
相关问答