下面这个C++程序不能正确输出,谁能帮看看?

2025-04-18 08:04:28
推荐回答(1个)
回答1:

你把main函数里第一条语句:char *ch="C++ is an Object-Oriented Programming Language";改为char ch[]="C++ is an Object-Oriented Programming Language";就行了,原因是这样的"C++ is an Object-Oriented Programming Language"这相当于一个const char*,你肯定知道把一个const 类型的指针赋给一个非const指针是不行的,但这里有点特殊,你这样写:char *ch="C++ is an Object-Oriented Programming Language"编译时没错,如果你在程序中自始至终都没有改变ch指针指向的内容的话,那不会出什么问题,但你要是改变了那就会出现运行时错误,显然你是改变了ch指针指向的内容的。如果你想改变ch指向的内容那你得为它分配一块内存,然后把C++ is an Object-Oriented Programming Language"考到你分配的内存里,像这样:char ch[]="C++ is an Object-Oriented Programming Language";这样随你想怎么改都行。你应该记住,你这样写:char *ch="C++ is an Object-Oriented Programming Language"只是把编译器为"C++ is an Object-Oriented Programming Language"分配的const类型的地址赋给了ch指针,严格的情况下是会报错的(但这种情况下可能是为了方便考虑编译器允许你通过),要记住不能改变指针指向的内容。