01/10/2018, 13:27

Tham chiếu trong con trỏ

void test(BTNode *root)
{
	(root->n)++;
}

void main()
{
	BTree c;
	c.Root=NULL;
	if(c.Root==NULL)
		c.Root=CreateBTNode(5);
	test(c.Root);
	printf("%d",c.Root->n);
	printf("
%d",c.Root->Info[0]);
	getch();
}
n=2 sau khi vào hàm test là 2 ra khỏi hàm test thì n=3 ? 

mình ko truyền tham chiếu vào hàm test nhưng ra khỏi hàm thì giá trị vẫn bị thay đổi tại sao thể nhỉ ?

Dark.Hades viết 15:32 ngày 01/10/2018

Bạn hiểu dấu * và dấu & như thế nào?

Nguyễn Phú Thành viết 15:39 ngày 01/10/2018

giá trị của địa chỉ mà con trỏ đang chứa cái địa chỉ đó / giá trị của con trỏ -> (con trỏ chứa địa chỉ đó)

Trần Hoàn viết 15:29 ngày 01/10/2018
void test(BTNode *root)
{
	(root->n)++;
}

Viết lại như thế này có giúp bạn hiểu vấn đề hơn không?

void test(BTNode* root)//BTNode* là một kiểu dữ liệu
{
	(root->n)++;
}
Bài liên quan
0