C u h i cho bi t k t qu th c thi ch ng tr nh sau
Download
1 / 23

CÂU HỎI : Cho biết kết quả thực thi chương trình sau: - PowerPoint PPT Presentation


  • 141 Views
  • Uploaded on

CÂU HỎI : Cho biết kết quả thực thi chương trình sau:. void main() { int a=5, b=9; int* p1=&a; int* p2=&b; cout<<*p1<<“ “<<*p2; p2=p1; p1=&b; cout<<*p1<<“ “<<*p2; getch(); }. CHÖÔNG 7. POINTER. Nội dung : Định nghĩa -Khai báo. Các thao tác trên biến con trỏ.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' CÂU HỎI : Cho biết kết quả thực thi chương trình sau:' - happy


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
C u h i cho bi t k t qu th c thi ch ng tr nh sau
CÂU HỎI: Cho biết kết quả thực thi chương trình sau:

void main()

{

int a=5, b=9;

int* p1=&a;

int* p2=&b;

cout<<*p1<<“ “<<*p2;

p2=p1;

p1=&b;

cout<<*p1<<“ “<<*p2;

getch();

}


Ch ng 7

CHÖÔNG 7

POINTER


Nội dung:

  • Định nghĩa -Khai báo.

  • Các thao tác trên biến con trỏ.

  • Con trỏ và mảng.

  • Thông số hình thức kiểu con trỏ.

  • Cấp phát động.


Iii con tr v m ng
III. CON TRỎ VÀ MẢNG:

1. Truy xuất phần tử mảng thông qua biến con trỏ:

Ví dụ: int a[4];

int* p=&a[0];

a[i] tương đương với *(p+i)


Iii con tr v m ng1
III. CON TRỎ VÀ MẢNG:

2. Tên biến mảng là hằng con trỏ: có trị bằng địa chỉ của phần tử đầu.

Ví dụ: int a[4];

int i=2;

khi đó a[i] tương đương *(a+i)


Iii con tr v m ng2
III. CON TRỎ VÀ MẢNG:

3. Tên thông số hình thức mảng tương đương biến con trỏ đối với hàm.

Ví dụ:

void nhap(int a[], int &n);

giống:

void nhap(int *a, int &n);


Iv thay i th ng s th c b ng th ng s h nh th c con tr
IV. THAY ĐỔI THÔNG SỐ THỰC BẰNG THÔNG SỐ HÌNH THỨC CON TRỎ:

Ví dụ:

void swap(int*pa, int* pb)

{

int tam;

tam=*pa;

*pa=*pb;

*pb=tam;

}


V c p ph t ng
V. CẤP PHÁT ĐỘNG: THỨC CON TRỎ:

1. Khái niệm:

  • Biến đã học được đặt trong vùng nhớ tĩnh gọi là stack

  • Con trỏ có thể được cấp phát vùng nhớ trong lúc chương trình đang chạy ở trong heap

    2. Toán tử new

    Cú pháp:

    biến_con_trỏ=new tên_kiểu[N];

    Ý nghĩa: Cấp phát vùng nhớ đủ để lưu N biến kiểu

    tên_kiểu. Mặc định N=1 (khi không có N).

    3. Toán tử delete

    Cú pháp: delete biến_con_trỏ;

    delete [] biến_con_trỏ;

    Ý nghĩa: Thu hồi vùng nhớ đã cấp phát cho

    biến_con_trỏ bằng new.


V c p ph t ng1
V. CẤP PHÁT ĐỘNG: THỨC CON TRỎ:

Ví dụ:

int * a;

a=new int;

int *p;

p=new int[100];

....

delete a;

delete [] p;


V d s d ng m ng c p ph t ng
Ví d THỨC CON TRỎ:ụ: Sử dụng mảng cấp phát động

void main()

{ int *a,n;

cin>>n;

a=new int[n];

...

}


Ch ng 8

CHÖÔNG 8 THỨC CON TRỎ:

STRING – STRUCT

(CHUỖI & CẤU TRÚC)

A. STRING


I c b n v chu i
I. CƠ BẢN VỀ CHUỖI: THỨC CON TRỎ:

1. Chuỗi là mảng ký tự với phần tử cuối là ký tự ‘\0’

Ví dụ:

char s[]={‘T’,’h’,’u’,’\0’};

2. Hằng chuỗi là dãy ký tự đặt giữa cặp “..”, đã được cấp phát vùng nhớ.

Ví dụ:

char *s=“Thu”;

char name[]=“Thu”;


Ii truy xu t chu i
II. TRUY XUẤT CHUỖI: THỨC CON TRỎ:

Cách 1. Truy xuất giống mảng ký tự.

Ví dụ:

char s[]={‘T’,’h’,’u’,’\0’};

int i=0;

while (s[i]!=‘\0’) cout<<s[i];

Cách 2. Sử dụng hàm chuỗi.


Ii truy xu t chu i1
II. TRUY XUẤT CHUỖI: THỨC CON TRỎ:

1. Nhập chuỗi:

Hàm

cin.getline(char*s, int len, char kthúc=‘\n’)

Ví dụ:

char s[50];

cin.getline(s,50);


Ii truy xu t chu i2
II. TRUY XUẤT CHUỖI: THỨC CON TRỎ:

2. Xóa đệm nhập:

Hàm

cin.ignore(int len, int kthúc=EOF)

Ví dụ:

cin.ignore(100,’\n’);


Ii truy xu t chu i3
II. TRUY XUẤT CHUỖI: THỨC CON TRỎ:

3. Các hàm khác trong string.h:

  • strlen : chiều dài chuỗi

  • strcpy: sao chép chuỗi

  • strcmp: so sánh chuỗi

  • strstr, strchr: tìm chuỗi con

  • ...


Ii truy xu t chu i4
II. TRUY XUẤT CHUỖI: THỨC CON TRỎ:

4. Các hàm khác trong ctype.h:

  • int islower(char)

  • char tolower(char)

  • ...


I kh i ni m
I. KHÁI NIỆM: THỨC CON TRỎ:

B. STRUCT

  • Struct là kiểu có nhiều thành phần khác kiểu.

  • Mỗi thành phần gọi là field.


Ii khai b o struct
II. KHAI BÁO STRUCT: THỨC CON TRỎ:

Cú pháp:

struct [tên_kiểu_str]

{

ds_thành_phần

} [ds_biến];

Ý nghĩa:

Khai báo (define) kiểu cấu trúc,

hoặc/và khai báo các biến kiểu cấu trúc

Mỗi thành phần được viết giống kbáo biến.


Ii khai b o struct1
II. KHAI BÁO STRUCT: THỨC CON TRỎ:

Ví dụ:

//Khai báo kiểu SinhVien

struct SinhVien

{

int NamSinh;

char HoTen[40];

float toan,ly,hoa;

};

//Khai báo biến sv1kiểu SinhVien

SinhVien sv1;

SinhVien sv[200];


Iii truy xu t struct
III. TRUY XUẤT STRUCT: THỨC CON TRỎ:

- Được phép gán cấu trúc cho cấu trúc.

  • Thao tác đọc ghi khác chỉ thực hiện được trên từng field.

    Cú pháp: Tên_biến.tên_field

    Ví dụ:

    cin>>sv1.NamSinh;

    cin.getline(sv1.HoTen,40);

    cin>>sv1.toan;

    ...


Iv nh ngh a ki u typedef
IV. ĐỊNH NGHĨA KIỂU typedef THỨC CON TRỎ:

Cú pháp: typedef mô_tả_kiểu tên_kiểu;

Ý nghĩa: Định nghĩa kiểu tên_kiểu

Ví dụ 1:

typedef int age;

age a; //a là biến kiểu int

Ví dụ 2:

typedef struct

{ float TuSo, MauSo;

} PhanSo;

PhanSo p;


N thi tr c nghi m
ÔN THI TRẮC NGHIỆM: THỨC CON TRỎ:

Toàn bộ nội dung của môn PPLT.

ÔN THI THỰC HÀNH:

Thuật toán trên mảng 1 chiều:

1. Liệt kê tất cả giá trị hoặc vị trí phần tử thoả điều kiện gì đó.

2. Tìm kiếm phần tử đầu tiên thỏa điều kiện.

3. Xóa các phần tử thỏa điều kiện.

4. Sắp xếp.


ad