Giữ nguyên giá trị con trỏ, thay đổi địa chỉ con trỏ

Đây là cách thay đổi giá trị tại địa chỉ vùng nhớ của con trỏ b nhưng vẫn như nguyên địa chỉ của b như lúc khởi tạo.


Vậy có cách ngược lại không mọi người, là: giữ nguyên giá trị tại chỉ của b, nhưng thay đổi địa chỉ của con trỏ b ?

Hi Nam Trần
Hahahahahaha
Hahahahahaha.

Chép nó ra chỗ khác rồi trỏ đến. Hahahahaha.

1 Like

có cách nào khác không bạn. mình muốn cách khác

Hi Nam Trần.
Bạn trỏ đến một địa chỉ khác thì nó là một vùng nhớ khác rồi.
Mình cũng không hiểu câu hỏi của bạn lắm. Giá trị của b là địa chỉ vùng nhớ nó trỏ đến mà @_@!
Thay đổi địa chỉ của con trỏ b là chuyển nơi lưu biến b ra chỗ khác a ?

ví dụ như:

#include <iostream>
using namespace std;

int main() {
	int a = 5;
	int *b = &a;
	cout << b << endl;
	cout << *b << endl;
	
	system("pause");
	return 0;	
}

giờ mình muốn thay đổi địa chỉ của b, mà vẫn giữ nguyên giá trị khi mình trỏ đến b?

Hi Nam Trần.
Bạn cần làm rõ các vấn đề về con trỏ trước.
Thay đổi dịa chỉ của b là làm gì ?
Giá trị của b là gì ?
Trỏ đến b nghĩa là sao ?
Mình khồn hiểu lắm. @_@!

Tốt nhất là bạn nên tìm hiểu xem variable trên bộ nhớ nó như thế nào, pointer trên bộ nhớ nó như thế nào. Hỏi kiểu này mình chẳng biết trả lời sao …

Hoàn toàn không có chuyện thay đổi địa chỉ con trỏ mà giữ nguyên giá trị con trỏ nhé bạn :))
Bởi vì bạn hiểu sai vấn đề cmnr :))

  • Địa chỉ con trỏ như bạn nói, thực ra nó là địa chỉ của ô nhớ mà con trỏ đó đang trỏ đến
  • Giá trị con trỏ như bạn nói, thực ra nó là dữ liệu ở trong ô nhớ mà con trỏ đó đang trỏ đến

Thay đổi địa chỉ tức là trỏ sang ô nhớ khác, mà đã trỏ sang ô nhớ khác thì nghiễm nhiên giá trị mà con trỏ thu được sẽ thay đổi. Bạn lấy dữ liệu trong ô nhớ cũ để gán cho ô nhớ mới, thế là bạn cho rằng “Giữ nguyên giá trị con trỏ” :joy_cat:

Cho nó chỉ đến chỗ khác chứ có gì đâu

Mình tự hỏi là yêu cầu của bạn có ý nghĩa trong thực tế ko?

Gợi ý nho nhỏ, đọc những vấn đề liên quan trên diễn đàn trước khi hỏi. Tham khảo:

*p++
trỏ đến chỗ khác

Mình trả lời vậy bạn thử xem có đúng ý bạn không nhé.
-Khai báo bình thường là type *variable
-Muốn thay đổi giá trị mà không thay đổi vùng nhớ thì khai báo là type * const variable
-Còn giữ giá trị không thay đổi vùng nhớ thì bạn khai báo là const type *variable
-Còn không thay đổi cả giá trị lẫn vùng nhớ thì const type * const variable

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?