01/10/2018, 08:50

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 ?

Tao Không Ngu. viết 11:02 ngày 01/10/2018

Hi Nam Trần
Hahahahahaha
Hahahahahaha.

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

Nam Trần viết 10:54 ngày 01/10/2018

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

Tao Không Ngu. viết 11:01 ngày 01/10/2018

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 ?

Nam Trần viết 11:03 ngày 01/10/2018

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?

Tao Không Ngu. viết 11:02 ngày 01/10/2018

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. @_@!

明玉 viết 10:51 ngày 01/10/2018

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 …

Trần Hoàn viết 11:05 ngày 01/10/2018

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ỏ”

Văn Dương viết 11:02 ngày 01/10/2018

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

Nguyên Trọng viết 10:58 ngày 01/10/2018

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

Đăng Trần viết 10:50 ngày 01/10/2018

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:

Con trỏ dùng để thao tác với các biến địa chỉ. Lấy 1 ví dụ đơn giản, e có 1 biến A, e gọi 1 hàm XYZ nào đó với tham số là A, bình thường chương trình sẽ tạo 1 bản copy của biến A và truyền vào hàm XYZ, trong hàm này dù e có thay đổi biến A thì kết thúc hàm, biến A vẫn mang giá trị ban đầu khi chưa gọi hàm XYZ vì thực chất e thay đổi trên bản copy, nhưng nếu e truyền địa chỉ của biến A hoặc con trỏ giữ địa chỉ của biến A thì giá trị của A sẽ thay đổi sau khi gọi hàm.

huyentrang viết 10:55 ngày 01/10/2018

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

CB viết 11:04 ngày 01/10/2018

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

Bài liên quan
0