c语言老是出现烫!

Python011

c语言老是出现烫!,第1张

出现烫,表示的是数组没有进行初始化赋值

那个……取值运算符和++是同一优先级的……会从左往右走……比如:*p++等于(*p)++

于是乎,你的赋值语句全部没用,相当于整个数组几乎只是最后一个*p = '\0'有用,*p等于str3,不影响参数,于是,没有经过初始化和赋值的字符串,显示为全是烫

首先你要知道为什么会输出烫烫烫

看下面的例子

可以看出来,output数组前10项都被设置为'a',也都正常输出了,但是后面的部分输出变成了烫烫烫

原因是字符串在输出时,会从头开始输出,直到遇到'\0'停止

而output数组在我们使用之前没有初始化过,所以除了前10项我们手动设置为'a',剩下的数据还是混乱的值,所以就会输出烫烫烫了

要解决这个问题,手动在字符串结尾处补一个'\0'即可,见以下代码:

#include <stdio.h>

#include <math.h>

#include <stdio.h>

int main()

{

char output[100]

for (int i = 0i < 10i++)

{

output[i] = 'a'

}

output[10]='\0'

//如果把上一句删掉就会出现输出烫的错误

printf("%s\n", output)

return 0

}

出现烫,表示的是数组没有进行初始化或赋值,

那个……取值运算符和++是同一优先级的……会从左往右走……比如:*p++等于(*p)++

于是乎,你的赋值语句全部没用,相当于整个数组几乎只是最后一个*p

=

'\0'有用,*p等于str3,不影响参数,于是,没有经过初始化和赋值的字符串,显示为全是烫