C字符串给出奇怪的输出

问题描述 投票:-1回答:3

((1)

#include<stdio.h>
int main()
{
    char str[5]="hello";
    str[5] = "g";
    printf("%s",str);
    return 0;
}

输出:hello0这不应该给出错误吗?(2)

#include<stdio.h>
int main()
{
    char str[5]="hello";
    str[3] = "g";
    printf("%s",str);
    return 0;
}

OUPUT:hel0o0从哪里来?

编译器:TDM-GCC-64Windows 10编辑器:Sublime Text

c output
3个回答
2
投票

我在给定的代码中看到多个错误。

1-在C语法中尝试分配双引号值返回


1
投票

您应该已经注意到分配给str[3]的值是一种字符串类型,而不是字符。如果使用str[3] = 'g',您将不再收到错误。


1
投票
  1. 这不应该给出错误吗?

© www.soinside.com 2019 - 2024. All rights reserved.