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

Bài giảng Tin học đại cương Phần 2: Bài 4 - Nguyễn Thành Kiên

33 77 0

Đ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 33
Dung lượng 735,17 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Đến với Bài giảng Tin học đại cương Phần 2: Bài 4 - Con trỏ và mảng trong C các bạn sẽ được tìm hiểu về các vấn đề liên quan đến con trỏ và địa chỉ; mảng. Hy vọng tài liệu là nguồn thông tin hữu ích cho quá trình học tập và nghiên cứu của các bạn.

Trang 1

TIN H C Đ I C Ọ Ạ ƯƠ NG Bài 4. CON TR  VÀ M NG TRONG C Ỏ Ả

       Nguy n Thành Kiên ễ

      B  môn K  thu t máy tính ộ ỹ ậ          Khoa Công ngh  thông tin –  HBK HN ệ Đ

Trang 2

 4.2.3. Các thao tác c  b n làm vi c trên m ng ơ ả ệ ả

 4.2.4. S  d ng con tr  trong làm vi c v i m ng ử ụ ỏ ệ ớ ả

Trang 3

 4.2.3. Các thao tác c  b n làm vi c trên m ng ơ ả ệ ả

 4.2.4. S  d ng con tr  trong làm vi c v i m ng ử ụ ỏ ệ ớ ả

Trang 4

 4.2.3. Các thao tác c  b n làm vi c trên m ng ơ ả ệ ả

 4.2.4. S  d ng con tr  trong làm vi c v i m ng ử ụ ỏ ệ ớ ả

Bài 4. CON TR  VÀ M NG TRONG C Ỏ Ả

Trang 5

4.1.1. Khái ni m con tr ệ ỏ

 B  nh  có th  hi u nh  m t dãy các byte ộ ớ ể ể ư ộ

nh , m i ô nh  đớ ỗ ớ ược xác đ nh m t cách ị ộduy nh t qua m t ấ ộ đ a ch ị ỉ

 T t c  các bi n trong m t chấ ả ế ộ ương trình 

đượ ư ở ộc l u   m t vùng nào đó trong b  nh  ộ ớ

Trang 6

4.1.1. Khái ni m con tr ệ ỏ

 Khi khai báo m t bi n, chộ ế ương trình d ch s  ị ẽ

c p phát cho bi n đó m t s  ô nh  liên ti p ấ ế ộ ố ớ ế

đ  đ  ch a n i dung c a bi n, ví d :ủ ể ứ ộ ủ ế ụ

 m t bi n ký t  đ ộ ế ự ượ c c p phát 1 byte ấ

 m t bi n nguyên đ ộ ế ượ c c p phát 2 byte ấ

 m t bi n th c đ ộ ế ự ượ c c p phát 4 byte .v.v  ấ

 Đ a ch  c a m t bi n chính là đ a ch  c a ị ỉ ủ ộ ế ị ỉ ủ

byte đ u tiên trong s  đó. ầ ố

Trang 7

int b;

b=0x07D6 &b=3300158

.

.

D6 07

.

3,300,157 3,300,158 3,300,159 3,300,160

1

b

a 41

Trang 9

4.1.1. Khái ni m con tr ệ ỏ

 Cú pháp khai báo m t con tr : ộ ỏ

Kiểu_dữ_liệu *tên_contrỏ;

 Ki u c a m t con tr  ph  thu c vào ki u bi n mà nó  ể ủ ộ ỏ ụ ộ ể ế

tr  đ n. Trong ví d  sau, ta đ nh nghĩa con tr  p tr   ỏ ế ụ ị ỏ ỏ

.

D6 07

.

3,300,157 3,300,158 3,300,159 3,300,160 1

b

Trang 12

 4.2.3. Các thao tác c  b n làm vi c trên m ng ơ ả ệ ả

 4.2.4. S  d ng con tr  trong làm vi c v i m ng ử ụ ỏ ệ ớ ả

Bài 4. CON TR  VÀ M NG TRONG C Ỏ Ả

Trang 13

4.1.2. Các phép toán làm vi c  ệ liên quan đ n bi n con tr ế ế ỏ  

 M t đi m m nh c a ngôn ng  C là kh  năng ộ ể ạ ủ ữ ả

th c hi n tính toán trên các con tr  Các ự ệ ỏ

phép toán s  h c có th  th c hi n trên con ố ọ ể ự ệ

tr  là:ỏ

 C ng/tr  con tr  v i m t s  nguyên (int, long) và  ộ ừ ỏ ớ ộ ố

k t qu  là m t con tr  cùng ki u ế ả ộ ỏ ể

 Tr  hai con tr  cùng ki u cho nhau, k t qu  là  ừ ỏ ể ế ả

m t s  nguyên. K t qu  này nói lên kho ng cách  ộ ố ế ả ả (s  ph n t  thu c ki u d  li u c a con tr )   gi a  ố ầ ử ộ ể ữ ệ ủ ỏ ở ữ hai con tr ỏ

Chú ý:

   Phép toán c ng hai con tr , và nhân chia, l y ph n d  trên  ộ ỏ ấ ầ ư

con tr  là không h p l ỏ ợ ệ  

Trang 14

4.1.2. Các phép toán làm vi c  ệ liên quan đ n bi n con tr ế ế ỏ

 Con tr  void:ỏ

 Đ ượ c khai báo nh  sau: ư

void *con_tro;

 Đây là con tr  đ c bi t, con tr  không có ki u, nó  ỏ ặ ệ ỏ ể

có th  nh n giá tr  là đ a ch  c a m t bi n thu c  ể ậ ị ị ỉ ủ ộ ế ộ

b t k  ki u d  li u nào. Con tr  void đ ấ ỳ ể ữ ệ ỏ ượ c dùng  làm đ i đ  nh n b t k  đ a ch  nào t  tham s   ố ể ậ ấ ỳ ị ỉ ừ ố

c a các l i g i hàm. Các l nh sau đây là h p l : ủ ờ ọ ệ ợ ệ

void *p, *q;

int x = 21;

float y = 34.34;

p = &x; q = &y;

Trang 15

 4.2.3. Các thao tác c  b n làm vi c trên m ng ơ ả ệ ả

 4.2.4. S  d ng con tr  trong làm vi c v i m ng ử ụ ỏ ệ ớ ả

Bài 4. CON TR  VÀ M NG TRONG C Ỏ Ả

Trang 16

 4.2.3. Các thao tác c  b n làm vi c trên m ng ơ ả ệ ả

 4.2.4. S  d ng con tr  trong làm vi c v i m ng ử ụ ỏ ệ ớ ả

Bài 4. CON TR  VÀ M NG TRONG C Ỏ Ả

Trang 17

4.2.1. Khái ni m m ng ệ ả  

t : ử

 có cùng ki u d  li uể ữ ệ

 đượ ưc l u tr  k  ti p nhau trong b  nh  ữ ế ế ộ ớ

Trang 18

 4.2.3. Các thao tác c  b n làm vi c trên m ng ơ ả ệ ả

 4.2.4. S  d ng con tr  trong làm vi c v i m ng ử ụ ỏ ệ ớ ả

Bài 4. CON TR  VÀ M NG TRONG C Ỏ Ả

Trang 19

 int mang_nguyen[10];// m ng 10 ph n t , ki u DL: int ả ầ ử ể

 float mang_thuc[4]; // m ng 4 ph n t ,ki u DL: float ả ầ ử ể

 char mang_ki_tu[6]; // m ng 6 ph n t ,ki u DL: char ả ầ ử ể

Chú ý: Kích th ướ c c a m ng b ng kích th ủ ả ằ ướ c m t ph n t  nhân v i s  ph n t   ộ ầ ử ớ ố ầ ử

Trang 20

M ng m t chi u và m ng nhi u  ả ộ ề ả ề

chi u ề

 M ng là t p h p các ph n t  cùng ki u d  ả ậ ợ ầ ử ể ữ

li u, n u m i ph n t  c a m ng cũng là m t ệ ế ỗ ầ ử ủ ả ộ

m ng khác thì khi đó ta có m ng nhi u ả ả ề

chi u. ề

 Ví d  sau khai báo m t m ng g m 6 ph n t , ụ ộ ả ồ ầ ửtrong đó m i ph n t  l i là m t m ng g m 5 ỗ ầ ử ạ ộ ả ồ

s  nguyên ki u ố ể int. M ng này là m ng 2 ả ả

chi uề

int a[6][5];

float b[3][4][5]; // ???

Trang 23

 Ph n t  đ u tiên c a m ng m t chi u a[0] s  là a[0][0] ầ ử ầ ủ ả ộ ề ẽ

 Ph n t  ti p theo c a a[0] s  là a[0][1] ầ ử ế ủ ẽ

 … 

 Ph n t  cu i cùng c a m ng m t chi u a[0] là a[0][4] ầ ử ố ủ ả ộ ề

 a[1] là ph n t  th  hai c a m ng ầ ử ứ ủ ả

 Và d  dàng tính đ ễ ượ c a[2][3] s  là ph n t  th  4 c a ph n t   ẽ ầ ử ứ ủ ầ ử

th  3 c a a ứ ủ

Trang 24

 4.2.3. Các thao tác c  b n làm vi c trên m ng ơ ả ệ ả

 4.2.4. S  d ng con tr  trong làm vi c v i m ng ử ụ ỏ ệ ớ ả

Bài 4. CON TR  VÀ M NG TRONG C Ỏ Ả

Trang 25

 M i m t ph n t  c a m ng th c ch t là m t bi n  ỗ ộ ầ ử ủ ả ự ấ ộ ế

có ki u d  li u là ki u d  li u chung c a m ng ể ữ ệ ể ữ ệ ủ ả

for(i = 0; i < n; i++) { printf("\n a[%d] = ", i);

scanf("%d",&a[i]);

}

Trang 26

 Chú ý: ch  s  ph i n m trong kho ng giá ỉ ố ả ằ ả

tr  cho phép, n u truy nh p ra ngòai giá tr  ị ế ậ ịtính toán s  không đúng.ẽ

Trang 27

nh t, nh  nh t.ấ ỏ ấ

Trang 28

 4.2.3. Các thao tác c  b n làm vi c trên m ng ơ ả ệ ả

 4.2.4. S  d ng con tr  trong làm vi c v i m ng ử ụ ỏ ệ ớ ả

Bài 4. CON TR  VÀ M NG TRONG C Ỏ Ả

Trang 30

main() {  

int i;  int *p;  

p = tab;  

for (i = 0; i < N; i++)     {      printf(" %d \n",*p);      

       p++;    

} } 

Trang 31

 Con tr  luôn c n ph i đỏ ầ ả ược kh i t o, ho c ở ạ ặ

b ng cách gán cho nó m t đ a ch  nào đó, ằ ộ ị ỉ

Ngày đăng: 30/01/2020, 14:58

🧩 Sản phẩm bạn có thể quan tâm