Tìm số đảo ngược của 1 số nguyên dương nhưng sử dụng hàm và con trỏ trong C/C++?
0
0
andi3641 • 10
đã đăng:
#include <stdio.h>
int inverseNumber(int *number)
{
int result = 0;
while (*number > 0)
{
int tmp = *number % 10;
result = (result * 10) + tmp;
*number /= 10;
}
return result;
}
int main()
{
int n = 1234565;
int reverse = inverseNumber(&n);
printf("So dao nguoc la: %d\n", reverse);
}
Bạn chỉ cần khai báo tham số cho hàm inverseNumber
dưới dạng một con trỏ, trong trường hợp này là *number
, nếu học lý thuyết rồi thì bạn đã biết muốn truy xuất giá trị của con trỏ ta sử dụng toán tử *
, đó là lý do khi tính toán trong hàm inverseNumber
mình sử dụng toán tử *
trước thằng number
.
Bản chất của con trỏ là lưu địa chỉ của biến khác, cho nên ở hàm main
, ta phải truyền địa chỉ của biến n
vào hàm inverseNumber
thông qua toán tử &
, đó là lý do tại sao bạn thấy mình truyền vào là &n
.
Hy vọng sẽ trả lời được câu hỏi của bạn.
thêm bình luận...
Bạn chưa đăng nhập, vui lòng đăng nhập để thêm câu trả lời.
Bạn đang thắc mắc? Ghi câu hỏi của bạn và đăng ở chế độ cộng đồng (?)