#include<iostream>
int Two(int a, const int* c)
{
if(a >= *c)
return a;
else
return *c;
}
int main()
{
std::cout << "请输入两个数:" ;
int a, b, *c;
std::cin >> a >> b;
*c = b;
std::cout << "二者中较大的是:" << Two(a, c) << std::endl;
return 0;
}
代码改成这样,亲测成功:
int a=0, b=0;
int *c = &b;
cout << "请输入两个数:" ;
cin >> a >> b;
cout<<"二者中较大的是:"<< Two(a, c) <<endl;
代码改成这样,亲测成功:
int a=0, b=0;
int *c = &b;
cout << "请输入两个数:" ;
cin >> a >> b;
cout<<"二者中较大的是:"<< Two(a, c) <<endl;
兄弟你程序出问题了你要试着去调试程序。问题出现在哪里。这样会学会很多。因为程序不可能写出来百分百正确的。所以要学会调试。这一点很重要。
int a, b, *c;
std::cin >> a >> b;
*c = b;
你的程序C是一个指针。没有分配地址。你直接给他赋值是不行的。指针一定要分配一地址。才能赋值。
*c = b,唉,编译器居然缺省都不产生一个warning,……
很多实用指针的新手都会遇到的问题,指针在使用之前需要初始化。
在main主函数中对指针*c 要当即初始化,最好令*c = 0
c的地址没有赋啊_…… *c=b的时候,哪个内存被赋值了呢?也许是意想不到的地方。
c指针化错了,要指向b的地址,而不是b数据本身