1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu Tin học đại cương- bài 9: con trỏ và địa chỉ mảng hàm và chương trình chuỗi ký tự ppt

64 2,3K 6

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 64
Dung lượng 598,5 KB

Nội dung

 ĐỊA CHỈ CỦA BIẾN Khái niệm: Địa chỉ của biến là số thứ tự của byte đầu tiên trong một dãy các byte liên tiếp mà máy dành cho biến...  KHÁI NIỆM BIẾN CON TRỎLà một biến dùng để lưu đ

Trang 1

TIN HỌC ĐẠI CƯƠNG

www.uit.edu.vn

BÀI 9

CON TRỎ VÀ ĐỊA CHỈ MẢNG

HÀM VÀ CHƯƠNG TRÌNH

Trang 3

 Qui tắc về kiểu giá trị trong khai báo

NỘI DUNG BÀI CON TRỎ VÀ ĐỊA CHỈ

Trang 5

ĐỊA CHỈ CỦA BIẾN

Khái niệm: Địa chỉ của biến là số thứ

tự của byte đầu tiên trong một dãy các byte liên tiếp mà máy dành cho biến

Phân loại địa chỉ biến: địa chỉ kiểu

int, float, double, …

Lấy địa chỉ của một biến: &

TOÁN TỬ ĐỊA CHỈ

Trang 6

TOÁN TỬ ĐỊA CHỈ

Trang 7

KHÁI NIỆM BIẾN CON TRỎ

Là một biến dùng để lưu địa chỉ của một biến, mỗi loại địa chỉ sẽ có một kiểu con trỏ tương ứng (phụ thuộc vào loại dữ liệu lưu trữ trong địa chỉ đó)

Con trỏ kiểu int dùng để chứa địa chỉ của các biến kiểu int Tương tự ta có con trỏ kiểu float, double, …

CON TRỎ

Trang 9

 Chỉ chứa những địa chỉ của loại dữ

liệu phù hợp với kiểu dữ liệu mà ta đã khai báo cho con trỏ

Trang 11

 Sử dụng giá trị lưu tại vùng nhớ mà

z = *p + 3*(*q);

QUI TẮC SỬ DỤNG CON TRỎ

Trang 16

KIỂU DỮ LIỆU CỦA CHỈ SỐ

 Chỉ số của mảng phải là một giá trị kiểu đơn

giản, rời rạc: số nguyên, ký tự.

Trang 17

Chú ý: Tên mảng chứa địa chỉ phần tử

đầu tiên của mảng

Trang 18

printf( "Nhap phan tu A[%d]: " ,i); scanf( "%d" , &A[i]);

} for(i=0; i<N; i++) printf( "%4d" , A[i]);

Trang 19

NHẬP XUẤT MẢNG (GIÁN TIẾP)

Trang 20

SỰ TƯƠNG QUAN MẢNG VÀ CON TRỎ

 Khi khai báo một mảng thì tên của mảng

là một hằng địa chỉ, chứa địa chỉ của

phần tử đầu tiên (phần tử có chỉ số 0).

 Như vậy ta có thể nói mảng là con trỏ

hằng

Xét khai báo: int a[5]; *pa=a; khi

đó con trỏ pa cũng giữ địa chỉ của phần

tử đầu tiên của mảng a và pa+i (hoặc pa[i]) là địa chỉ của phần tử a[i].

Trang 22

int *pa;  int pa[];

double *pa;  double pa[];

char *pa; char pa[];

long *pa; long pa[];

SỰ TƯƠNG QUAN MẢNG VÀ CON TRỎ

Trang 23

Tham số N là tham chiếu.

Tham số a là tham trị vì a là con trỏ hằng.

 Giá trị trả về: không có

Trang 25

CHƯƠNG TRÌNH MINH HỌA (tt)

Trang 26

for ( int i=0; i<N-1; i++)

for ( int j=i+1; j<N; j++)

if (A[i]>A[j]) {

temp=A[i];

A[i]=A[j];

A[j]=temp;

} }

CHƯƠNG TRÌNH MINH HỌA (tt)

Trang 27

p=a;

ABC(a);

}

Trang 30

ABC(a);

}MẢNG 2 CHIỀU

Trang 34

Một chương trình bao gồm một hoặc nhiều hàm Hàm main() là thành phần bắt buộc của chương trình Chương trình bắt đầu thực hiện từ câu lệnh đầu tiên của hàm main() cho đến khi gặp dấu }

cuối cùng của hàm này

Trang 35

 Là một đơn vị độc lập của chương trình.

 Không cho phép xây dựng một hàm bên

trong một hàm khác

HÀM & CHƯƠNG TRÌNH

Trang 37

Không được viết:

int TinhTong( int a, b)

HÀM & CHƯƠNG TRÌNH

Trang 39

KIỂU GIÁ TRỊ CỦA HÀM

Giá trị trả về của hàm được xác định dựa vào mục đích của hàm, và trong thân hàm ta phải trả về đúng kiểu giá trị đã định ban đầu Nếu các hàm không trả về giá trị ta phải khai báo kiểu void.

Trang 40

Tên hàm khai báo trong nguyên mẫu và khi viết đầy đủ phải giống nhau.

HÀM & CHƯƠNG TRÌNH

Trang 41

Ví dụ: int TinhTong( int a, int *b)

Tham số thực: là các giá trị, biến mà ta ghi

sau tên hàm khi gọi hàm đó để thực hiện.

Ví dụ: f = TinhTong(x, y);

HÀM & CHƯƠNG TRÌNH

Trang 42

Tham chiếu: là các tham số thực truyền

cho tham số hình thức của hàm dưới dạng

&biến hay *biến, ghi nhận lại những kết quả vừa tính toán trong hàm khi kết thúc hàm.

Tham trị: là các tham số thực truyền cho

tham số hình thức của hàm dưới dạng biến, giá trị không bị thay đổi khi hàm kết thúc.

HÀM & CHƯƠNG TRÌNH

Trang 44

Tham số vào: cung cấp giá trị cho hàm.

Tham số ra: lưu kết quả tính toán được

trong hàm.

Lưu ý:

Các tham số ra phải là tham chiếu.

 Các tham số vào mà không muốn giá trị

của nó thay đổi khi hàm kết thúc thì phải

được khai báo là tham trị.

HÀM & CHƯƠNG TRÌNH

Trang 45

NỘI DUNG CỦA HÀM

Với thân hàm ta không nên viết một hàm có nội dung quá lớn mà nên chia ra thành nhiều hàm để nội dung được rõ ràng và giảm độ phức tạp của hàm.

VỊ TRÍ KHAI BÁO NỘI DUNG CỦA HÀM

Ta có thể khai báo nội dung của một hàm ở bất cứ vị trí nào và các hàm phải độc lập

Trường hợp khi không khai báo nguyên mẫu

của hàm thì hàm đó phải được viết đầy đủ trước khi có lời gọi đến nó.

HÀM & CHƯƠNG TRÌNH

Trang 46

• Nội dung của hàm

Nguyên mẫu của hàm

HÀM & CHƯƠNG TRÌNH

Trang 47

} hàm2( ) { // khai báo biến cục bộ

<lệnh>;

}

// khai báo biến toàn cục

void main( ) { // khai báo biến cục bộ

… hàm1( ); // gọi hàm1

hàm2( ); // gọi hàm2

TỔ CHỨC CHƯƠNG TRÌNH TRONG C

Trang 48

Cách 2: // khai báo thư viện

hàm1( ); // khai báo nguyên mẫu prototype

hàm1( ) // khai báo chi tiết các hàm

{ // khai báo biến cục bộ

Trang 49

CÁCH TRUYỀN DỮ LIỆU GIỮA CÁC HÀM

Việc truyền dữ liệu và kết quả từ hàm này sang hàm khác được thực hiện trong hai cách:

 Sử dụng đối số của hàm.

 Sử dụng biến ngoài, biến tĩnh ngoài

HÀM & CHƯƠNG TRÌNH

Trang 50

VÍ DỤ VỀ HÀM & CHƯƠNG TRÌNH

Nguyên mẫu của hàm

Trang 53

KHÁI NIỆM VỀ CHUỖI KÝ TỰ

 Trong ngôn ngữ C, chuỗi ký tự là một

dãy các ký tự đặt trong hai dấu nháy kép

 Chuỗi rỗng được ký hiệu bằng hai dấu

nháy kép đi liền nhau : “”

Ví dụ:

Chuỗi “Chào các bạn”

Trang 54

 Chuỗi là mảng một chiều mà kiểu

dữ liệu của từng phần tử trong mảng là ký tự

 Chuỗi là một con trỏ trỏ đến kiểu ký

tự char

Trang 55

KHAI BÁO CHUỖI

CÁC PHƯƠNG PHÁP KHAI BÁO CHUỖI

char sName[100];

char sName[];

char *sName;

Trang 57

strset strspn

strlen strncat strncmp strncmpi strncpy

strnicmp strnset strpbrk strrchr strrev

strstr strtok strxfrm struppr _strerror strerror stricmp atoi

atol atof

Trang 60

 Ta có thể truyền tham số chuỗi ký tự vào

trong hàm một cách hoàn toàn tương tự như truyền tham số mảng và con trỏ

Ví dụ:

int DemKhTrang( const char *chuoi);

int DemKTThuong( const char *chuoi);

char *ChuyenDoi( const char *chuoi);

Trang 61

int i;

int dem=0;

for (i=0; i<strlen(chuoi); i++)

if (chuoi[i]==' ') dem++;

return dem;

}

Trang 62

// hàm đếm số ký tự thường trong chuỗi

int DemKTThuong( char chuoi[])

Trang 63

char *kq; strcpy(kq, chuoi);

for ( int i=0; kq[i]!='\0'; i++)

if ((kq[i]>='a') && (kq[i]<='z'))

Trang 64

www.uit.edu.vn

Ngày đăng: 17/02/2014, 01:20

HÌNH ẢNH LIÊN QUAN

 THAM SỐ HÌNH THỨC CĨ 2 DẠNG - Tài liệu Tin học đại cương- bài 9: con trỏ và địa chỉ mảng hàm và chương trình chuỗi ký tự ppt
2 DẠNG (Trang 42)
Tham số hình thức - Tài liệu Tin học đại cương- bài 9: con trỏ và địa chỉ mảng hàm và chương trình chuỗi ký tự ppt
ham số hình thức (Trang 50)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w