课后作业26 测试题第四题
#include <stdio.h>int main()
{
char *pArray={
"Hello!",
"How are you?",
"Fine,thank you.And you?",
"I am fine too."};
char **p;
int i;
p=&pArray;
p=&pArray;
p=&pArray;
p=&pArray;
for(i=0;i<4;i++)
{
printf("%s\n",*p);
}
return 0;
}
为什么这代码运行没有结果哪里出错了呢??? 两个问题
1、
p=&pArray;
p=&pArray;
p=&pArray;
p=&pArray;
此时,p指向指针数组里最后一项也就是"I am fine too."的首地址,
只能用 printf("%s\n", *p);来输出 I am fine too.
而用循环显然不行的,会报错
2、
p = &pArray;
// p = &pArray;
// p = &pArray;
// p = &pArray;
for (i = 0; i < 4; i++)
{
//printf("%s\n", *p);这里不能用*,因为p是一行字符串的首地址,用*号只能得到这一行字符串的第一个字符
printf("%s\n", p);
//如果非要用*号,也只能这样 printf("%s\n", *(p+i));
}
chxchxkkk 发表于 2021-3-13 00:45
两个问题
1、
p=&pArray;
谢谢回答,很详细
页:
[1]