Chào anh chị và các bác! Em có đoạn code bên dưới, không hiểu sao khi chạy trên visual studio dòng //print 2 và print 3 lại khác nhau ở giá trị *p, print 4 và print 5 cũng vậy. còn khi chạy trên ide online thì *p ở các dòng này đều bằng 0. Mong anh chị và các bác giải thích giúp em. Em xin cảm ơn!
#include<iostream>
using namespace std;
void f(int *x) {
int a = 4;
x = &a;
}
void g(int *&x) {
int a = 3;
x = &a;
}
void h(const int *&x) {
int b = 2;
x = &b;
}
int main() {
int *p = new int;
*p = 5; f(p);
cout << p << " " << *p << endl; // Print #1
g(p);
cout << p << " " << *p << endl; // Print #2
cout << p << " " << *p << endl; // Print #3
const int*p1 = p;
h(p1);
cout << p << " " << *p << endl; // Print #4
cout << p << " " << *p << endl; // Print #5
cin >> *p;
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?