JINGZMR 2022-10-30 10:15 采纳率: 63.6%
浏览 25

数组与指针的问题(入门)

结果为什么是0 1 5,想了好久没想出来,望指教


#include<stdio.h>
#include<string.h>
int main()
{
    char p0[]="hello";
    char *p1="hello";
    char p2[11]="hello";
    printf("%d\n",p0==p1);
    printf("%zu\n",sizeof(*p2));
    printf("%zu\n",strlen(p1));
    
    
    return 0;
}
  • 写回答

2条回答 默认 最新

  • 快乐鹦鹉 2022-10-30 10:20
    关注

    p0==p1肯定不成立,因为是两个字符串,首地址不同。所以输出0
    sizeof(*p2),因为p2是char *类型,所以 * p2就是char类型,char类型长度为1,所以输出1
    strlen(p1)是计算字符串p1的长度,p1共有5个有效字符,所以输出5

    评论

报告相同问题?

问题事件

  • 创建了问题 10月30日

悬赏问题

  • ¥15 Mac版Fiddler Everywhere4.0.1提示强制更新
  • ¥15 android 集成sentry上报时报错。
  • ¥50 win10链接MySQL
  • ¥35 跳过我的世界插件ip验证
  • ¥15 抖音看过的视频,缓存在哪个文件
  • ¥15 自定义损失函数报输入参数的数目不足
  • ¥15 如果我想学习C大家有是的的资料吗
  • ¥15 根据文件名称对文件进行排序
  • ¥15 deploylinux的ubuntu系统无法成功安装使用MySQL❓
  • ¥15 有人会用py或者r画这种图吗