Truyền tham số mảng

Một phần của tài liệu C_C++ (Trang 83 - 86)

 Để truyền tham số có kiểu mảng, ta dùng cú pháp

 Kieu_Tra_Ve Ten_Ham(Kieu_PT_Mang a[] ,...)

 Ví dụ:

/* Hàm sắp xếp 1 mảng nguyên a gồm N phần tử */ void SX_NoiBot(int a[], int N)

{ int i,j,tmp; for(i=0;i<N-1;i++) for(j=0;j<N-i-1;j++) if(a[j]>a[j+1]) { tmp=a[j];a[j]=a[j+1];a[j+1]=tmp;} } void main() { int a[10]={9,2,7,4,3,6,1,12,8,5}, i; SX_NoiBot(a,10);

for(i=0;i<10;i++) printf( %3d ,a[i]);

3.13 Hàm (function) Ngoài cách dùng hàm thông thư  Ngoài cách dùng hàm thông thư

ờng đã biết, ta còn có thể dùng hàm dưới dạng con trỏ tới hàm.

 Cách này thường được dùng trong trường hợp ta cần lập trình gọi hàm một cách tổng quát.  Ví dụ: #include <stdio.h> #include <math.h> double dien_tich_hinh_tron(float bk) { return(3.14*bk*bk); }

typedef double (*fptr)(float); void main()

{

 Trong C, hàm còn có thể có tính đệ quy (recursive): Một hàm có thể có lời gọi đến chính nó.

 Ví dụ: Tính giai thừa của một số N

#include <stdio.h> #include <math.h> long giai_thua(int N) { return(N<=1? 1:N * giai_thua(N- 1)); } void main() { printf( 4!=%d\n", giai_thua(4));

85Object-Oriented Programming (OOP) Object-Oriented Programming (OOP)

3.13 Hàm (function)-Các tham số cho hàm main() C cung cấp cho ta một cách để  C cung cấp cho ta một cách để

truyền tham số cho chương trình khi ta chạy chương trình thông qua các tham số của hàm main()

 cú pháp như sau:

main( int argc, char *argv[] )

Trong đó:

argc là số tham số

argv[] là mảng chứa giá trị

các tham số.

Nhưng argv[0] là tên của chương trình, như vậy giá trị tham số bắt đầu từ argv[1].

 Ví dụ:

#include <stdio.h>

main( int argc, char *argv[] ) {

if( argc == 2 )

printf("The argument supplied is %s\n", argv[1]);

else if( argc > 2 )

printf("Too many arguments supplied.\n");

else

printf("One argument expected.\n");

3.13 Hàm (function)- Gọi các chương trình ngoài Ta có thể thực hiện các  Ta có thể thực hiện các

Một phần của tài liệu C_C++ (Trang 83 - 86)

Tải bản đầy đủ (PPT)

(109 trang)