马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
视频源码如下#include <iostream>
int main(int argc, const char *argv[], const char *envp[])
{
int a = 123;
float b = 3.14;
char c = 'C';
unsigned long d = 19880808;
std::string e = "I love FishC! ";
std::cout << "a的值是: " << a << std::endl;
std::cout << "b的值是: " << b << std::endl;
std::cout << "c的值是: " << c << std::endl;
std::cout << "d的值是: " << d << std::endl;
std::cout << "e的值是: " << e << std::endl;
int *ap = &a;
float *bp = &b;
char *cp = &c;
unsigned long *dp;
std::string *ep = &e;
*ap = 456;
*bp = 4.13;
*cp = 'F';
*dp = 20230617;
*ep = "I love Beauty! ";
std::cout << "a的值是: " << a << std::endl;
std::cout << "b的值是: " << b << std::endl;
std::cout << "c的值是: " << c << std::endl;
std::cout << "d的值是: " << d << std::endl;
std::cout << "e的值是: " << e << std::endl;
return 0;
}
视频中运行结果是:
但是我编译之后的却是:PS D:\Desktop\Others\Programming\C Language\网上教学\小甲鱼C++\第09节 复杂的数据类型3> g++ test01.cpp -o test
PS D:\Desktop\Others\Programming\C Language\网上教学\小甲鱼C++\第09节 复杂的数据类型3> ./test
a的值是: 123
b的值是: 3.14
c的值是: C
d的值是: 19880808
e的值是: I love FishC!
PS D:\Desktop\Others\Programming\C Language\网上教学\小甲鱼C++\第09节 复杂的数据类型3>
我觉得吧,代码是没问题,就是它只显示之前的部分,后边的就不输出了,难道是编译器的事?
根据您提供的代码和结果,可以看出程序编译和运行都没有报错,但是输出结果只有第一部分。
问题很可能出在指针变量`dp`上,它在定义时并未被初始化,因此其初始值是不确定的。在后面程序中,将赋值操作`*dp = 20230617;`应该导致了程序崩溃或出现未定义行为。
解决这个问题,可以在定义`dp`时给它一个初始值,例如:
unsigned long *dp = nullptr;
表示`dp`指向空地址,或者让`dp`指向一个已存在的`unsigned long`变量。修改之后重新编译和运行程序,应该可以得到正确的输出结果。
求最佳答案
|