#include <iostream>
void square_ref(int& a);
int square_val(int a);
int main() {
int a = 2;
int s = 2;
std::cout << "a: " << a << ", s: " << s << std::endl;
std::cout << "------" << std::endl;
square_ref(a);
square_val(s);
std::cout << "a: " << a << ", s: " << s << std::endl;
std::cout << "------" << std::endl;
square_ref(a);
s = square_val(s);
std::cout << "a: " << a << ", s: " << s << std::endl;
return 0;
}
void square_ref(int& a)
{
a = a*a;
}
int square_val(int a)
{
return a*a;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdm9pZCBzcXVhcmVfcmVmKGludCYgYSk7CmludCAgc3F1YXJlX3ZhbChpbnQgYSk7CgppbnQgbWFpbigpIHsKCWludCBhID0gMjsKCWludCBzID0gMjsKCQoJc3RkOjpjb3V0IDw8ICJhOiAiIDw8IGEgPDwgIiwgczogIiA8PCBzIDw8IHN0ZDo6ZW5kbDsKCXN0ZDo6Y291dCA8PCAiLS0tLS0tIiA8PCBzdGQ6OmVuZGw7CgkKCXNxdWFyZV9yZWYoYSk7CglzcXVhcmVfdmFsKHMpOwoJc3RkOjpjb3V0IDw8ICJhOiAiIDw8IGEgPDwgIiwgczogIiA8PCBzIDw8IHN0ZDo6ZW5kbDsKCXN0ZDo6Y291dCA8PCAiLS0tLS0tIiA8PCBzdGQ6OmVuZGw7CgkKCXNxdWFyZV9yZWYoYSk7CglzID0gc3F1YXJlX3ZhbChzKTsKCXN0ZDo6Y291dCA8PCAiYTogIiA8PCBhIDw8ICIsIHM6ICIgPDwgcyA8PCBzdGQ6OmVuZGw7CgoJcmV0dXJuIDA7Cn0KCnZvaWQgc3F1YXJlX3JlZihpbnQmIGEpCnsKCWEgPSBhKmE7Cn0KCmludCBzcXVhcmVfdmFsKGludCBhKQp7CglyZXR1cm4gYSphOwp9