Nhảy chuyển đến

Hàm số

Hàm số thanh minh

Biên trình trung hàm số ( function ) giống nhau là bao nhiêu câu nói tập hợp. Chúng ta cũng có thể đem này gọi “Tử quá trình( subroutine )”. Tại lập trình trung, nếu có một ít lặp lại quá trình, chúng ta có thể đem này lấy ra ra tới, hình thành một cái hàm số. Hàm số có thể tiếp thu bao nhiêu giá trị, cái này kêu làm hàm số tham số. Hàm số cũng có thể phản hồi nào đó giá trị, cái này kêu làm hàm số phản hồi giá trị.

Thanh minh một cái hàm số, chúng ta yêu cầu phản hồi giá trị loại hình, hàm số tên, cùng với tham số danh sách.

1
2
3
4
// phản hồi giá trị loại hình int
// hàm số tên some_function
// tham số danh sách int, int
intsome_function(int,int);

Như trên đồ, chúng ta thanh minh một cái tên làsome_functionHàm số, nó yêu cầu tiếp thu hai cáiintLoại hình tham số, phản hồi giá trị loại hình cũng vìint.Có thể cho rằng, cái này hàm số sẽ đối truyền vào hai cái số nguyên tiến hành một ít thao tác, hơn nữa phản hồi một cái đồng dạng loại hình kết quả.

Thực hiện hàm số: Biên soạn hàm số định nghĩa

Chỉ có hàm số thanh minh ( declaration ) còn chưa đủ, hắn chỉ có thể làm chúng ta ở thuyên chuyển khi có thể biết được hàm sốTiếp lờiLoại hình ( tức tiếp thu cái gì số liệu, phản hồi cái gì số liệu ), nhưng này khuyết thiếu cụ thể bên trong thực hiện, cũng chính là hàm sốĐịnh nghĩa( definition ). Chúng ta có thể ởThanh minh lúc sau địa phương khácBiên soạn số hiệuThực hiện( implement ) cái này hàm số ( cũng có thể ở mặt khác văn kiện trung thực hiện, nhưng là yêu cầu đem phân biệt biên dịch sau văn kiện ở liên tiếp khi cùng nhau cấp ra ).

Nếu hàm số có phản hồi giá trị, tắc yêu cầu thông quareturnCâu nói, đem giá trị phản hồi cấp thuyên chuyển phương. Hàm số một khi chấp hành đếnreturnCâu nói, tắc trực tiếp kết thúc trước mặt hàm số, không hề chấp hành kế tiếp câu nói.

1
2
3
4
5
6
7
8
9
intsome_function(int,int);// thanh minh

/* some other code here... */

intsome_function(intx,inty){// định nghĩa
intresult=2*x+y;
returnresult;
result=3;// này câu nói sẽ không bị chấp hành
}

Ở định nghĩa khi, chúng ta cấp hàm số tham số danh sách lượng biến đổi nổi lên tên. Như vậy, chúng ta liền có thể ở hàm số định nghĩa trung sử dụng này đó lượng biến đổi.

Nếu là cùng cái văn kiện trung, chúng ta cũng có thể trực tiếp đemThanh minh cùng định nghĩa xác nhập ở bên nhau,Nói cách khác, cũng chính là ở thanh minh khi liền hoàn thành định nghĩa.

1
intsome_function(intx,inty){return2*x+y;}

Nếu hàm số không cần có phản hồi giá trị, tắc đem hàm số phản hồi giá trị loại hình tiêu vìvoid;Nếu hàm số không cần tham số, tắc có thể đem tham số danh sách trí không. Đồng dạng, vô phản hồi giá trị hàm số chấp hành đếnreturn;Câu nói cũng sẽ kết thúc chấp hành.

1
2
3
4
5
6
7
voidsay_hello(){
cout"hello!\n";
cout"hello!\n";
cout"hello!\n";
return;
cout"hello!\n";// này câu nói sẽ không bị chấp hành
}

Hàm số thuyên chuyển

Cùng lượng biến đổi giống nhau, hàm số yêu cầu trước bị thanh minh, mới có thể sử dụng. Sử dụng hàm số hành vi, gọi là “Thuyên chuyển ( call )”. Chúng ta có thể ở bất luận cái gì hàm số bên trong thuyên chuyển mặt khác hàm số, bao gồm cái này hàm số tự thân. Hàm số thuyên chuyển tự thân hành vi, xưng làĐệ quy( recursion ).

Ở đại đa số ngôn ngữ trung, thuyên chuyển hàm số phương pháp sáng tác, làHàm số tên hơn nữa một đôi dấu móc(),Nhưfoo().Nếu hàm số yêu cầu tham số, tắc chúng ta đem này yêu cầu tham số ấn trình tự điền ở dấu móc trung, lấy dấu phẩy khoảng cách, nhưfoo(1, 2).Hàm số thuyên chuyển cũng là một cái biểu đạt thức,Hàm số phản hồi giá trịChính làBiểu đạt thức giá trị.

Hàm số thanh minh thời điểm viết ra tham số, có thể lý giải vì ở hàm sốTrước mặt thứ thuyên chuyển bên trongCó thể sử dụng lượng biến đổi, này đó lượng biến đổi giá trị từ thuyên chuyển chỗ truyền vào giá trị khởi động lại. Xem phía dưới cái này ví dụ:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
voidfoo(int,int);

/*... */

voidfoo(intx,inty){
x=x*2;
y=y+3;
}

/*... */

a=1;
b=1;
// thuyên chuyển trước: a = 1, b = 1
foo(a,b);// thuyên chuyển foo
// thuyên chuyển sau: a = 1, b = 1

Ở mặt trên ví dụ trung,foo(a, b)Là một lần đốifooThuyên chuyển. Thuyên chuyển khi,fooTrungxCùngyLượng biến đổi, phân biệt từ thuyên chuyển chỗaCùngbGiá trị khởi động lại. Bởi vậy, ởfooTrung đối lượng biến đổixCùngySửa chữa,Cũng không sẽ ảnh hưởng đến thuyên chuyển chỗ lượng biến đổi giá trị.

Nếu chúng ta yêu cầu ở hàm số ( tử quá trình ) trung sửa chữa lượng biến đổi giá trị, tắc yêu cầu chọn dùng “Truyền trích dẫn” phương thức.

1
2
3
4
5
6
7
8
9
10
11
12
voidfoo(int&x,int&y){
x=x*2;
y=y+3;
}

/*... */

a=1;
b=1;
// thuyên chuyển trước: a = 1, b = 1
foo(a,b);// thuyên chuyển foo
// thuyên chuyển sau: a = 2, b = 4

Kể trên số hiệu trung, chúng ta nhìn đến hàm số tham số danh sách trung “int”Mặt sau tăng thêm một cái “&( and ký hiệu )”, này tỏ vẻ đối vớiintLoại hìnhTrích dẫn( reference ). Ở thuyên chuyểnfooKhi, thuyên chuyển chỗaCùngbLượng biến đổi phân biệt khởi động lạifooTrung hai cái đốiintLoại hình trích dẫnxCùngy.ỞfooTrungxCùngy,Có thể lý giải vì thuyên chuyển chỗaCùngbLượng biến đổi “Biệt danh”, tứcfooTrung đốixCùngyThao tác, chính là đổi chỗ tác dụngaCùngbThao tác.

mainHàm số

Đặc biệt, mỗi cái C/C++ trình tự đều cần phải có một cái tên làmainHàm số. Bất luận cái gì trình tự đều đem từmainHàm số bắt đầu vận hành.

mainHàm số cũng có thể có tham số, thông quamainHàm số tham số, chúng ta có thể đạt được ngoại giới truyền cho cái này trình tự mệnh lệnh ( cũng chính là “Mệnh lệnh hành tham số” ), để làm ra bất đồng phản ứng.

Phía dưới là một đoạn thuyên chuyển hàm số ( tử quá trình ) số hiệu:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// hello_subroutine.cpp

#include&LTiostream>

voidsay_hello(){
std::cout"hello!\n";
std::cout"hello!\n";
std::cout"hello!\n";
}

intmain(){
say_hello();
say_hello();
}