Xin chào và chào mừng.
Trong bài giảng này, tôi muốn nói về đối số và tham số.
Các thuật ngữ này có xu hướng được sử dụng thay thế cho nhau.
Những gì họ phải đối phó với về cơ bản là dữ liệu mà
bạn chuyển cho một hàm.
Vì vậy, một tham số là một biến và một khai báo hàm
và triển khai định nghĩa hàm.
Hãy nhớ rằng, sự khác biệt này giữa khai báo
hàm, nguyên mẫu hàm và định nghĩa hàm.
Khai báo hàm là chỉ là chữ ký của phương thức,
đó là tiêu đề hàm.
Định nghĩa hàm là việc thực
hiện các chức năng, mã thực tế.
Trong cả hai điều này, các điều khoản định nghĩa khai báo,
hiểu những khác biệt đó.
Nhưng tham số là những gì trong khai báo và định nghĩa hàm, nó
nằm trong tiêu đề đó.
Bởi vì cả hai tiêu đề đều được bao gồm trong định nghĩa trong khai báo.
Khi một hàm được gọi, đối số là dữ liệu bạn truyền cho các
tham số hàm.
Đó là giá trị thực tế của một biến
được chuyển đến hàm.
Vì vậy, các tham số hàm được xác định trong tiêu đề hàm
và trình giữ chỗ của chúng cho các đối số cần được chỉ
định khi hàm được gọi.
Vì vậy, hãy hiểu sự khác biệt ở đây giữa các đối số và tham số.
Các thông số liên quan đến định nghĩa và khai báo hàm.
Đối số là nơi bạn gọi hàm,
khi bạn gọi hàm, dữ liệu mà bạn đang chuyển.
Vì vậy, các đối số được sử dụng khi bạn gọi.
Bạn sẽ nói đây là những đối số đó sẽ là chức năng của tôi.
Và khi hàm nhận được dữ liệu đó, chúng được
gọi là các tham số.
Các tham số cho một hàm là danh sách các tên tham số với kiểu
dữ liệu của chúng.
Mỗi tham số là cách nhau bằng dấu phẩy.
Toàn bộ danh sách các tham số là được đặt trong dấu ngoặc đơn theo sau
tên của hàm.
Một chức năng không thể có tham số, có nghĩa là không
có dữ liệu nào được truyền cho nó.
Và trong trường hợp này, bạn chỉ có ngoặc trái và phải có khoảng trống ở giữa
chúng hoặc trống, bạn vẫn có thể để nó trống rỗng như không có gì ở giữa chúng, nhưng đó là
một phương pháp tốt để đặt một khoảng trống ở giữa chúng.
Void là một từ khóa đặc biệt điều đó có nghĩa là không có gì, có nghĩa là không có tham số
hoặc không có dữ liệu trả về.
Các thông số cung cấp các phương tiện để truyền dữ liệu cho một hàm.
Dữ liệu được truyền từ hàm gọi tới hàm được gọi, lệnh gọi
e tới đầu nhận, kết thúc cuộc gọi và kết thúc nhận.
Tên của các tham số là cục bộ cho chức năng.
Chúng ta sẽ nói về điều đó khi chúng ta nói về dữ liệu cục bộ.
Nhưng những tên tham số chỉ tồn tại bên trong thân chức năng.
Họ sẽ giả định các giá trị của các đối số được chuyển cho nó.
Vì vậy, nếu bạn có một hàm được gọi là thêm, bạn chuyển vào
một biến làm đối số, bạn truyền vào giá trị 5 và bạn có một hàm với
tham số x, x sẽ bằng đến 5 ở bất kỳ vị trí nào trong cơ thể chức năng.
Phần thân của hàm nên sử dụng các tham số
này trong việc triển khai nó.
Nếu không, thì họ lẽ ra không nên được thông qua.
Nếu bạn có một biến tham số được định nghĩa trong định
nghĩa khai báo hàm của bạn và bạn không bao giờ sử dụng biến bên trong hàm, điều đó thật lãng phí,
đừng bao gồm nó vì đó chỉ là nói rằng bạn không cần nó.
Không gửi dữ liệu đến một chức năng không sử dụng nó.
Một cơ quan chức năng có thể có bổ sung các biến được xác định cục
bộ cần thiết cho việc triển khai hàm.
Bạn có thể có bên trong hàm nội dung các biến khác được khai báo
vì chúng cần cho bất kỳ nhiệm vụ nào bạn đang hoàn thành.
Bạn không chỉ hoạt động trên dữ liệu được chuyển đến nó.
Bạn có thể hoạt động trên địa chỉ dữ liệu bên trong hàm.
Khi truyền một mảng dưới dạng đối số cho một hàm, bạn
cũng phải chuyển một đối số bổ sung, có một tham số khác được xác định
chỉ định kích thước của mảng.
Lý do cho điều này là hàm không có cách nào để biết có bao
nhiêu phần tử trong mảng.
Vì vậy, ngay cả khi bạn đã khai báo mảng có kích thước 50, bạn
chỉ có thể lưu trữ 30 phần tử.
Và nếu bạn định sử dụng mảng bên trong thân hàm, có thể bạn sẽ
cần biết nó lớn như thế nào vì bạn sẽ cần lặp lại thông qua nó
bằng cách sử dụng một vòng lặp hoặc bạn sẽ cần
truy cập các phần tử.
Và nếu các yếu tố truy cập của bạn đang lặp lại
nó, bạn cần biết có hay không khi bạn đang ở ngoài giới hạn.
Và chúng tôi đã nói về việc giới hạn ở đó và tại sao điều đó lại quan trọng.
Đây là một ví dụ.
Khi hàm printf là được gọi, bạn luôn cung cấp một hoặc
nhiều giá trị làm đối số.
Giá trị đầu tiên là chuỗi bên trong dấu ngoặc kép.
Các giá trị còn lại là bất kỳ các biến được hiển thị.
Đây thực sự là một chức năng nhận một số lượng biến đối số mà chúng ta
có thể sẽ không nói đến vì đây là lớp dành cho người mới bắt đầu, đó
là một khái niệm nâng cao hơn.
Nhưng hàm printf là một ví dụ tốt về việc
chuyển dữ liệu cho nó vì bạn đang chuyển nhiều bộ dữ liệu
cho nó, hoặc là chuỗi bên trong dấu ngoặc kép hoặc biến mà bạn muốn hiển thị.
Đây là lý do tại sao nó rất quan trọng có thể truyền dữ liệu cho một hàm.
Nó tăng cường đáng kể tính hữu ích và tính linh hoạt của một chức năng.
Nếu các chức năng không có khả năng chấp nhận dữ liệu, chúng
sẽ không hữu ích.
Trong ví dụ mà tôi đã cung cấp trong bài giảng cuối
cùng, chúng tôi đã có một hàm hiển thị đầu ra, nó không thực sự làm được nhiều.
Nó rất tĩnh.
Nó đã làm điều tương tự mỗi khi bạn gọi nó.
Nhưng nếu bạn có một chức năng đã lấy dữ liệu, sau đó bạn có thể
kiểm soát những gì được hiển thị.
Vì vậy, cũng giống như hàm printf.
Nếu hàm printf không có các tham số, bạn sẽ không thể biết
nó sẽ hiển thị những gì.
Nếu bạn không chấp nhận dữ liệu, bạn sẽ không thể nói, hey, hiển
thị biến này hoặc hiển thị chuỗi này.
Nó sẽ không hữu ích lắm.
Vì vậy, bạn muốn có thể vượt qua dữ liệu cho một hàm làm cho nó
trở nên hữu ích và linh hoạt hơn nhiều.
Và bạn sẽ thấy điều đó.
Ý tôi là nếu chúng ta thực hiện phép nhân chức năng, bạn sẽ không
muốn nhân giống nhau hai số mỗi lần.
Bạn sẽ lấy các thông số và dữ liệu sẽ được chuyển cho nó cho hai số.
Vì vậy, bạn có thể thực hiện các phép tính khác nhau dựa trên dữ liệu được chuyển cho nó.
Rất, rất quan trọng để hiểu truyền dữ liệu và tại sao nó hữu ích.
Cũng nên thêm vào nhận xét trước mỗi định nghĩa chức
năng của riêng bạn.
Nó giúp giải thích những gì hàm sẽ hoạt động như thế nào và các đối
số sẽ được sử dụng như thế nào.
Bạn sẽ thường thấy điều này.
Bạn sẽ thấy điều này trong các ví dụ của tôi.
Bạn có khai báo hàm ở đầu tệp, bạn có
định nghĩa hàm.
Định nghĩa hàm bao gồm tiêu đề hàm.
Ngay trên chức năng đầu trang, bạn có bình
luận, thường là bình luận nhiều dòng.
Vì vậy, bạn có dấu gạch chéo, dấu hoa thị.
Và ở đó bạn nói tên của chức năng, mục đích của chức năng và sau đó
cũng mô tả bất kỳ dữ liệu nào đang được chuyển cho hàm.
Điều này, một lần nữa, là để bảo trì và có thể tìm và
sửa lỗi nhanh hơn nhiều.
Thông thường, bạn muốn có một tên hay cho hàm sẽ cho
bạn biết điều gì đó.
Nhưng với các nhận xét bổ sung, nó sẽ cho bạn biết nhiều hơn nữa.
Đây là một ví dụ về một hàm nhân hai số, điều đó nhận được dữ liệu
được chuyển đến nó.
Chúng tôi có nhân hai số của chúng tôi.
Chúng tôi biết đó là một chức năng vì nó có các tham số về cơ bản.
Nó có dấu ngoặc đơn.
Đó là một cách bạn có thể xác định các hàm khi bạn nhìn thấy dấu ngoặc đơn.
Ý tôi là chúng tôi cũng có thể xác định vì nó có kiểu trả về.
Có nhiều thứ cho chúng tôi biết đó là một chức năng.
Nhưng điều chính là dấu ngoặc đơn và sau đó bạn cũng thấy các dấu ngoặc
nhọn, dấu ngoặc nhọn biểu thị bắt đầu và kết thúc khối.
Điều này nhân hai chức năng số mặc dù.
Hãy nhớ rằng các tham số hàm được xác định ở giữa các dấu ngoặc đơn và sau đó chúng được
phân tách bằng dấu phẩy.
Ở đây chúng ta có hai tham số.
Chúng tôi có một tham số có tên x và một tham số có tên là y.
Đối với mỗi thông số, bạn phải xác định
loại dữ liệu đến.
Vì vậy, ở đây chúng tôi có hai int.
Đây là cách tiêu chuẩn để truyền dữ liệu và cách thực hiện.
Ở giữa các dấu ngoặc đơn, dữ liệu sau đó nhập tên cho biến.
Tên cho biến vì bất kỳ thứ gì hợp lệ trong c đối với tên
của một biến, bạn có thể gọi x y z đó là bất cứ điều gì bạn muốn.
Bạn chỉ không thể bắt đầu nó với một biểu tượng dấu đô la.
Và sau đó bạn phân tách chúng bằng dấu phẩy, quen với quy ước này,
các tham số bên trong dấu ngoặc đơn.
Nếu bạn không có tham số, không có dữ liệu được chuyển cho
hàm, bạn sẽ thấy gì ở giữa dấu ngoặc đơn bị vô hiệu hoặc bạn sẽ không thấy
gì ở giữa dấu ngoặc đơn.
Chức năng này tất cả những gì nó sẽ làm nó sẽ lấy dữ
liệu được chuyển cho nó là hai biến bây giờ được đặt tên là x và y, và nó sẽ nhân chúng với nhau và lưu
trữ chúng trong một biến có tên là kết quả hoặc trong trường hợp này, có vẻ
như tôi đã viết sai chính tả t.
Và sau đó nó làm gì là nó in dữ liệu.
Nó in ra dữ liệu điều đó được nhân lên.
Nhưng một lần nữa, hãy xem sự linh hoạt và tính hữu dụng của hàm
vì nó lấy dữ liệu.
Nó có thể hiển thị khác nhau dữ liệu dựa trên những gì bạn vượt qua nó.
Khi chúng ta gọi hàm trong quy trình chính ở đây, chúng tôi nói nhân hai
số và chúng tôi chuyển các đối số vào.
Chúng tôi chuyển giá trị 10 và 20.
Chúng tôi có thể chuyển vào biến tên ở đây là tốt.
Nhưng trong ví dụ này, chúng tôi chỉ nói 10 và 20.
Điều này sẽ gọi hàm nhân hai số và
nó sẽ chuyển vào dữ liệu 10 cho tham số đầu tiên 20 cho thứ hai.
Vì vậy, x sẽ bằng 10, y sẽ bằng 20.
Vì vậy, khi chúng ta thực hiện phép nhân x lần y, nó sẽ là 10 lần 20,
kết quả sẽ được lưu trữ 200 và
sau đó nó sẽ hiển thị kết quả đó cùng với các biến đang được chuyển tới x y và z.
Vì vậy, nó sẽ hiển thị 10 20 và sau đó 200.
Cũng lưu ý rằng chúng tôi có thể bây giờ sử dụng lại chức năng này.
Chúng tôi đang gọi nó một lần nữa với dữ liệu, giá trị dữ liệu 20 và 30 trong dòng thứ hai
của chúng tôi ở đây trong hàm chính.
Và sau đó chúng tôi gọi nó một lần nữa lần thứ ba để nhân 50 với 2.
Rất hữu ích để có thể làm điều này để tạo ra một hàm
lấy dữ liệu khác nhau làm cho nó có thể tái sử dụng, làm cho nó linh hoạt.
Và cú pháp rất dễ làm theo.
Nó chỉ là hai biến bên trong của các dấu ngoặc ngăn cách nhau bằng dấu phẩy.
Và sau đó gọi nó là dễ dàng hơn, bạn chỉ cần khoảng
trắng một tên và bạn có hai dữ liệu.
Bất kỳ dữ liệu nào được phân tách bằng dấu ngoặc đơn bên chung và sau
đó kết thúc bằng dấu chấm phẩy.
Bạn có thể vượt qua bất kỳ loại kiểu dữ liệu thành một hàm.
Bạn có thể chuyển một mảng.
Chúng ta cũng sẽ nói về cách bạn có thể chuyển các kiểu dữ liệu khác.
Chúng tôi có các ví dụ đơn giản ở đây, nhưng bạn cũng có thể chuyển con trỏ mà chúng
ta chưa nói đến.
Bạn có thể vượt qua trong cấu trúc.
Một lần nữa, một khái niệm khác chúng tôi đã không nói về.
Nhưng nó trở nên thực sự, thực sự có ý nghĩa và hữu ích khi bạn chuyển
dữ liệu vào đây.
Đây là một ví dụ đơn giản.
Chú ý cú pháp, nghiên cứu điều này và sẽ cung cấp một thách thức tốt
cho bạn khi bạn viết số lượng các chức năng khác nhau.
Cảm ơn bạn.