[c/c++] Ứng dụng con trỏ trong chương trình con trả về giá trị ngầm

     Con trỏ là một biến đặc biệt trong C/ C++. Biến này có khả năng lưu trữ địa chỉ của những biến mà nó trỏ tới. Điều này sẽ giúp cho con trỏ có khả năng truy xuất đến một biến khác để thay đổi nội dung mà không cần phải sử dụng trực tiếp bằng tên của biến đó. Ứng dụng con trỏ trong lập trình C, C++ là một kiến thức quan trọng trong lập trình.

     Một ứng dụng rất cơ bản của con trỏ là được sử dụng trong chương trình con, cách sử dụng con trỏ này sẽ là phương pháp trả ngầm giá trị về cho chương trình gọi nó.

     Để có thể tìm hiểu rõ bạn hãy xem ví dụ sau:

// Viết chương trình con tìm GTLN và GTNN của 3 số sử dụng con trỏ
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>

void maxmin(int a, int b, int c, int *max, int *min);

int main()
{
	int x, y, z, gtln, gtnn;
	printf("Nhap vao 3 so nguyen\n");
	scanf("%d%d%d",&x,&y,&z);
	printf("x=%d \ny=%d \nz=%d\n",x,y,z);
	maxmin(x,y,z,&gtln,&gtnn);
	printf("GTLN = %d \nGTNN = %d\n",gtln,gtnn);
	system("pause");
}

void maxmin(int a, int b, int c, int *max, int *min)
{
	if(a>b)
		{
			*max=a;
			*min=b;
		}
	else
		{
			*max=b;
			*min=a;
		}

	if(*max<c)
		*max=c;
	if(*min>c)
		*min=c;
}

Chạy chương trình bạn nhận được kết quả

Nhap vao 3 so nguyen

123

456

333

x=123

y=456

z=333

CTLN = 456

GTNN = 123

Press any key to continue

     Giải thích chương trình

     Các bạn có thể thấy rằng chương trình con đang thực hiện là một dạng chương trình con không trả về giá trị. Kiểu dữ liệu của chương trình là void, tuy nhiên do trên giá trị gọi hàm có sử dụng con trỏ *max và *min. Do vậy, trong quá trình tính toán, nếu giá trị của max và min có thay đổi thì chương trình sẽ tự động cập nhật ra ngoài mà không cần phải gán cho giá trị nhận. Đây là chức năng đặc biệt của con trỏ. 

     Các bạn có thể hiểu rằng. Khi chúng ta khai báo 1 biến con trỏ, thì biến này sẽ lưu trữ địa chỉ của biến khác. Bất kỳ biến nào được truyền đến cho biến con trỏ, thì biến đó sẽ truyền địa chỉ đến cho biến con trỏ. Và biến con trỏ sẽ thông qua địa chỉ mà có thể thay đổi hoặc cập nhật dữ liệu cho biến truyền đó. 

     Phương pháp sử dụng con trỏ rất hay trong những ngôn ngữ lập trình. Tuy nhiên, phương pháp này hơi trừu tượng, các bạn phải nắm rõ cú pháp và cách khai báo. Đồng thời phải kiểm soát chặt chẽ mới có thể sử dụng hiệu quả. Chúc các bạn thành công

 


Categories:

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *