C二级指针无法输出,请求大神给改一下下谢谢
本帖最后由 奥普瓯江 于 2017-11-24 22:34 编辑#include<stdio.h>
#include<stdlib.h>
int main(void)
{
char *hot1 = "nihaowoshi";
char *hot2 = "bzhidao";
char *hot3 = "shemeyis";
char *hot4 = "haoniget";
char *hot5 = NULL;
char *cool;
cool = hot1;
cool = hot2;
cool = hot3;
cool = hot4;
cool = hot5;
/*while (*(*cool) - 1 != '\0')
{
printf("%c", *(*cool)++);
}*/
char *may;
while ((may = (*cool)++) != NULL)
{
while (*may != '\n')
{
printf("%c", *may++);
}
}
return 0;
} 5个元素的数组为何自定义长度为4 BngThea 发表于 2017-11-24 22:31
5个元素的数组为何自定义长度为4
没注意我在试试 BngThea 发表于 2017-11-24 22:31
5个元素的数组为何自定义长度为4
还是一样编辑不了 奥普瓯江 发表于 2017-11-24 22:36
还是一样编辑不了
错误提示呢 char *may = new char;编译器不一样这个地方可能编译不同,如果直接是char *may; may并没有被分配地址,所以用new从堆中给它分配。
还有 while ((may = (*cool)++) != NULL) 这句话,循环到第五个时不会结束,会一直循环下去,这是由于内存分配地址后,++会指向下一个,不会为NULL的。 根据我的观察是 30行循环的 判断错了 因改为 *may != '\0'.
因为字符串是以'\0' 作为结束标志,而不是'\n'{:5_101:}
页:
[1]