为什么max和q要设置为指向指针的指针,不能为指针然后max=p[i]这样吗,为什么不对
2条回答 默认 最新
关注 【以下回答由 GPT 生成】
问题的关键在于理解指针和指向指针的指针的概念,并将其应用于具体的问题中。下面是一个解决该问题的示例程序:
#include<stdio.h> #include<string.h> int main() { char str[5][10] = {0}, *p[5], **max, **q; int i; // 输入5个字符串 for (i = 0; i < 5; i++) { gets(str[i]); p[i] = str[i]; } // 初始化最长字符串指针max和比较字符串指针q max = &p[0]; q = &p[1]; // 找出最长的字符串 for (i = 1; i < 5; i++, q++) { if (strlen(*max) < strlen(*q)) { max = q; } } // 输出最长的字符串 printf("较大的字符串是%s\n", *max); return 0; }
这个程序使用了一个二维字符数组
str
存储输入的5个字符串,每个字符串的最大长度为10个字符。通过使用指针数组p
,将每个字符串的首地址存储在其中。在程序中,首先通过一个循环来逐个输入5个字符串,并将每个字符串的首地址赋值给指针数组
p
的相应元素。接下来,初始化了两个指向指针的指针,分别是
max
和q
。max
用于保存最长的字符串的地址,q
用于逐个比较其他字符串的长度。然后,使用一个循环来比较每个字符串的长度,并将最长字符串的地址保存在
max
中。最后,通过打印出指向最长字符串的指针
*max
来输出最终结果。这样根据输入的5个字符串,程序会找出其中最长的字符串并进行输出。
希望这个例子对你更好地理解指针和指向指针的指针的概念有所帮助。如果还有其他问题,请随时提问。
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^解决 无用评论 打赏 举报
悬赏问题
- ¥50 求解vmware的网络模式问题 别拿AI回答
- ¥24 EFS加密后,在同一台电脑解密出错,证书界面找不到对应指纹的证书,未备份证书,求在原电脑解密的方法,可行即采纳
- ¥15 springboot 3.0 实现Security 6.x版本集成
- ¥15 PHP-8.1 镜像无法用dockerfile里的CMD命令启动 只能进入容器启动,如何解决?(操作系统-ubuntu)
- ¥30 请帮我解决一下下面六个代码
- ¥15 关于资源监视工具的e-care有知道的嘛
- ¥35 MIMO天线稀疏阵列排布问题
- ¥60 用visual studio编写程序,利用间接平差求解水准网
- ¥15 Llama如何调用shell或者Python
- ¥20 谁能帮我挨个解读这个php语言编的代码什么意思?