cuốn sách gpt4 ai đã làm

Tại sao con trỏ tới một lớp có thể thay đổi giá trị thông qua lệnh gọi hàm?

In lại Tác giả: Walker 123 Thời gian cập nhật: 27-11-2023 23:11:56 30 4
mua khóa gpt4 Nike

Tôi mới làm quen với con trỏ lớp. Tôi đã viết mã đơn giản để chứng minh vấn đề của mình.
Tại sao p->num có thể đặt giá trị trong f2? Con trỏ p không giống n? Chỉ là biến cục bộ?
Không phải phạm vi của n1 và p2 tương ứng là f1 và f2 sao? Cảm ơn
Sự khác biệt giữa chúng là gì!

nút lớp {
công cộng:
int số;
Nút* tiếp theo;
};

void f1(Nút n1){
n1.num = 50;
}
void f2(Nút*p2){
p2->num= 100;
}
int chính(){
Nút n;
f1(n);
cout<<>

Nút*p;
f2(p);
cout<num<
trả về 0;
}

câu trả lời hay nhất

Truyền con trỏ tới hàm cũng giống như truyền tham chiếu. Trên thực tế, về cơ bản đây là cách các tài liệu tham khảo hoạt động ở hậu trường.

Ngoài ra, đối với cả hai trường hợp, trong mã của bạn, bạn cóhành vi không xác định. Khi bạn khai báo một biến cục bộ nhưng không gán nó cùng lúc thì giá trị của nó làkhông chắc chắnvà việc sử dụng giá trị đó cho mọi thứ đều không được xác định. Có, ngay cả khi bạn ghé thăm n.num Ngoài ra hành vi không xác định, bạn nhận được giá trị 0 Chỉ là may mắn thôi. Sử dụng con trỏ như bạn thậm chí có thể khiến chương trình của bạn bị lỗi.

Tại sao con trỏ tới một lớp có thể thay đổi giá trị thông qua lệnh gọi hàm? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/19732491/

30 4 0
Walker 123
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress