首页 > 代码库 > 一道极易出错的笔试题
一道极易出错的笔试题
#include <iostream>
using namespace std;
void func(int &x, int *x1)
{
x-=5;;
x1+=10;
}
int main()
{
int a=100,b=200;
func(b,&a);
func(a,&b);
cout<<a<<","<<b<<endl;
using namespace std;
void func(int &x, int *x1)
{
x-=5;;
x1+=10;
}
int main()
{
int a=100,b=200;
func(b,&a);
func(a,&b);
cout<<a<<","<<b<<endl;
}
题目看起来很简单,但很容易出错,此题的结果是
95,195
主要原来在x1+=10;因为x1是一个指针,里面存的是一个地址,所以此语句只是将x1里面的地址值加10,并不会影响实参的值。
如果将x1+=10;改成*x1+=10;那么结果就为105,205
一道极易出错的笔试题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。