Hỏi đáp
Chia sẻ kiến thức, cùng nhau phát triển
Pointer parameter - Tham biến trong C++
00:48 09-08-2017
746 lượt xem
5 bình luận
22:29 08-11-2017
void foo5(int *n)
{
*n++;
cout << *n<<endl;
}
Mình có 1 hàm foo5 và hàm main như sau
int main()
{
int n = 10;
foo5(&n);
cout << n<<endl;
system("pause");
return 0;
}
Mọi người cho mình hỏi . tại sao khi mình dùng *n++ thì không thấy giá trị thay đỗi vậy nhỹ . Cảm ơn all
*n++ khác n++
cách sửa : *n++ -> (*n)++
Trung Nguyễn Văn Để có thể tăng giá trị của 1 biến thì cần lấy dc địa chỉ của con trỏ -> lấy giá trị tại địa chỉ đó -> tăng giá trị.
1 lý do nữa là toán tử " ++ " đc ưu tiên hơn so với toán tử "*"
*n++ thực chất là tăng vị trí của con trỏ chứ không phải là tăng giá trị của biến
Bạn cần học lại về con trỏ *n++ nó trả về địa chỉ của con trỏ thôi
Đã hiểu vấn đề . Cảm ơn mn :D
Phạm Quốc Huy *n++ thành . (*n) ++ . hiểu nôm na là nó sẽ lấy giá trị của n . sau đó ++ lên
:D . . nếu k để dấu ( ) thì nó sẽ lấy n++ trước . rồi nó mới lấy giá trị . nó sẽ chịch chuyển con trỏ trong bộ nhớ lên 4byte .