Ktl-icon-tai-lieu

lập trình c - Sử dụng hàm trong C

Được đăng lên bởi vomenthancn12
Số trang: 17 trang   |   Lượt xem: 2379 lần   |   Lượt tải: 1 lần
Chương 3:
Sử dụng hàm trong C

Nội Dung
Chương

trình con
Khai báo, xây dựng và sử dụng hàm
Truyền đối số cho hàm
Hàm “đệ quy”

Chương Trình Con
một đoạn chương trình độc lập, giải
quyết một công việc hoàn chỉnh, có thể
được sử dụng nhiều lần trong chương trình.
Có hai loại chương trình con:
Là

Thủ tục(Procedure)
Hàm(Function)

C chỉ có duy nhất một loại chương
trình con: hàm.

Trong

Khai Báo Hàm
<return type> FuncName(datatype arg1, datatype arg2,…)
{
statement1;
statement2;
….
[return value;]
}

 Chú ý:
C không cho phép các hàm lồng nhau
Có thể có nhiều lệnh return trong 1 hàm
Đối với hàm có giá trị trả về, phải có ít nhất 1 lệnh
return
Đối với hàm không có giá trị trả về, sử dụng kiểu void
để mô tả kiểu của hàm

Ví dụ
#include <stdio.h>
int sum(int x,int y); //prototype của hàm sum
int main()
{
int s = sum(5,4); //gọi hàm sum
printf(“Sum: %d”,s);
getchar();
return 0;
}
int sum(int x, int y)
{
return x+y;
}

Truyền Đối Số Cho Hàm
đối số(arguments) có thể được truyền
vào một hàm theo hai cách:

Các

Truyền theo trị
Truyền theo địa chỉ

Truyền Theo Trị
đối số được
truyền theo trị,
giá trị thực của
đối số sẽ được
copy và truyền
vào trong hàm.

Khi

void swap(int a, int b)
{
int temp = a;
a = b;
b = temp;
}
int main()
{
int a = 5, b = 4;
swap(a,b); //goi ham
printf(“a: %d and b:
%d”,a,b);
getch();
return 0;
}

Truyền Theo Địa Chỉ
đối số được
truyền theo địa chỉ,
lúc đó địa chỉ của
đối số được truyền
vào trong hàm và
thao tác trực tiếp
tại địa chỉ của đối
số.

 Khi

void swap(int &a, int &b)
{
int temp = a;
a = b;
b = temp;
}
int main()
{
int a = 5, b = 4;
swap(a,b);
printf(“a: %d and b:
%d”,a,b);
getch();
return 0;
}

Chú ý
Truyền theo trị

Truyền theo địa chỉ

Ưu điểm:
Ưu điểm:
1. Đối số truyền vào có thể là biến(x), 1. Cho phép nhận được sự thay đổi
giá trị cụ thể(5), hoặc biểu
giá trị của đối số sau khi thoát khỏi
hàm
thức(x+1);
2. Giá trị của đối số không bị thay đổi 2. Không thực hiện copy giá trị đối số,
bởi hàm được gọi;
tiết kiệm thời gian
3. Có thể truyền tham chiếu
hằng(const reference) để tránh sự
thay đổi không mong muốn
4. Có thể trả về nhiều giá trị từ một
hàm
Khuyết điểm:
Tốn nhiều thời gian khi copy một
lượng dữ liệu lớn(structs, classes…)

Khuyết điểm:
1. Đối số truyền vào bắt buộc phải là
biến

Biến và phạm vi tồn tại của
biến
1.

Biến toàn cục(global)
int n = 100;
void main()
{
…….
}

2.

Biến cục bộ(local)
void main()
{
int n = 100;
}

int i = 5;
void main()
{
i++; // i = 6
func();
printf(“i = %d”,i);
}
void ...
Chương 3:
Sử dụng hàm trong C
lập trình c - Sử dụng hàm trong C - Trang 2
Để xem tài liệu đầy đủ. Xin vui lòng
lập trình c - Sử dụng hàm trong C - Người đăng: vomenthancn12
5 Tài liệu rất hay! Được đăng lên bởi - 1 giờ trước Đúng là cái mình đang tìm. Rất hay và bổ ích. Cảm ơn bạn!
17 Vietnamese
lập trình c - Sử dụng hàm trong C 9 10 937