Khác biệt giữa '.' và '->' khi sử dụng struct?

Em có đoạn code về cây nhị phân,nhưng em không hiểu rõ lắm các lệch -> và dấu . nó có ý nghĩa gì? Em có hỏi bạn em nó bảo là dấu chấm để gọi hàm con,em thấy mơ hồ quá không hiểu hết được. Em biết mấy anh chị bận đi làm nên không có thời gian nhiều,nhưng do em hiểu biết còn ít nên không hiểu chỗ nào em hỏi chỗ đó có khi em hỏi có thể mấy anh/chị không hiểu câu hỏi của em hay cảm thấy nó quá nhàm chán thì cho em xin lỗi nha

void PreOrder(TNode*root)
{
	if(root !=NULL)
	{
		cout<<" "<<root->key;	
		PreOrder(root->pLeft);
		PreOrder(root->pRight); 
	}
}

void InOrder(TNode*root)
{
	if(root !=NULL)
	{
		InOrder(root->pLeft);
		cout<<" "<<root->key;
		InOrder(root->pRight); 
	}
}

void PostOrder(TNode*root)
{
	if(root !=NULL)
	{
		PostOrder(root->pLeft);
		PostOrder(root->pRight); 
		cout<<" "<<root->key;
	}
}
-----------------------------------------------------------------
Về câu hỏi dấu chấm

struct point
{
	int x;
	int y;
};
struct vector
{
	point s;
	point e;
};
void nhapVector(list<vector> &myl){
	ifstream inputfile("listVector.txt"); //mo file de doc
	vector tam;
	while(!inputfile.eof()){
		inputfile>>tam.s.x>>tam.s.y;  // goc vector (s.x, s.y)
		inputfile>>tam.e.x>>tam.e.y;  // ngon vector (e.x, e.y)
		myl.push_back(tam); //them vector vua doc vao cuoi list 
		
	}
	inputfile.close();  //dong file
	myl.unique();
}
1 Like

Dấu . hay dấu -> đều được dùng để truy xuất (gọi) các hàm hay các thuộc tính. Điểm khác nhau ở đây là dấu -> dùng cho con trỏ. Tức là khi con trỏ truy xuất (gọi) hàm/ thuộc tính thì nó dùng dấu -> thay vì dấu . như bình thường không phải con trỏ. Lần sau e post code, nên để ý định dạng code 1 chút nhé. lần này a sửa lại định dạng cho e rồi. :smile:

Nếu cần hiểu thêm e xem các video về con trỏ trong danh sách video dưới đây:

1 Like

Thêm một ví dụ cụ thể như thế này cho dễ nắm:

struct Point
{
	int x;
	int y;
};

int main()
{
    Point p;
    p.x = 1; // dùng dấu chấm vì đây là kiểu struct bình thường
    
    Point * contro_p;
    contro_p->x = 1; // dùng dấu trỏ -> vì đây là con trỏ
}

P/S: Em lập topic khá ổn rồi. Tuy nhiên, Thành có thể xem thêm cách đặt tiêu đề và nội dung thông qua hai tác phẩm văn học hiện thực phê phán anh chém gió ở đây nhé.

3 Likes

cảm ơn anh Đạt và anh Tuấn,em sẽ rút kinh nghiệm cho những lần sao

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