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

Chương 3: Mảng và con trỏ ppt

29 649 5

Đ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 29
Dung lượng 201 KB

Nội dung

CHƯƠNG 3: Mảng và con trỏ... Mảng Mảng Array  Là một tập các vị trí nhớ liên tiếp nhau  Các phần tử trong mảng có cùng tên và cùng kiểu..  Truy nhập tới phần tử trong mảng  Xác định

Trang 1

CHƯƠNG 3: Mảng và con trỏ

Trang 2

1 Mảng

 Mảng (Array)

 Là một tập các vị trí nhớ liên tiếp nhau

 Các phần tử trong mảng có cùng tên và cùng kiểu.

 Truy nhập tới phần tử trong mảng

 Xác định thông qua tên mảng và chỉ số:

 Phần tử đầu tiên ở vị trí thứ 0

Trang 3

Khai báo mảng

int c[ 10 ]; // mảng c gồm 10 số nguyên float d[ 3284 ]; // mảng d gồm 3284 số thực

 Có thể khai báo nhiều mảng cùng kiểu

int b[ 100 ], x[ 27 ];

Trang 5

 Mảng được truyền theo kiểu truyền tham chiếu

 Hàm có thể chỉnh sửa dữ liệu của các phần tử trong mảng

 Tên mảng là địa chỉ của phần tử đầu tiên

Trang 8

char string1[] = "hello";

Ký tự null được tự động bổ sung.

string1 có 6 ký tự

char string1[] = {'h', 'e', 'l', 'l','o', '\0’ };

Trang 9

Kiểu dữ liệu string

 string là một lớp chuẩn trong C++

 Các ký tự trong string được đánh từ 0

 Khởi tạo một biến kiểu string như sau:

Trang 11

0x1054 0x1055 0x1056 0x1057

int i; Địa chỉ của i

char c; Địa chỉ của c

short s; Địa chỉ của s

Trang 12

 Ví dụ:

int i=17;

int* ptr; // khai báo biến trỏ kiểu int

ptr= &i; // gán địa chỉ của biến i cho con trỏ ptr

cout << *ptr << endl; // hiển thị nội dung của biến i

Trang 13

Biến con trỏ …

17 0x1054

Trang 14

Biến con trỏ …

int v; // khai báo biến v kiểu int

int w; // khai báo biến w kiểu int

int* p; // khai báo biến p kiểu con trỏ trỏ tới kiểu int p=&v;

// gán địa chỉ của v cho con trỏ p

Trang 15

Con trỏ hằng

 Khai báo hằng:

const int result = 5; // result là hằng result = 10; // sau đó gán lại giá trị thì C++ sẽ báo lỗi

 Khai báo con trỏ hằng:

const char* answer_ptr = "Forty-Two";

// answer_ptr là con trỏ trỏ tới hằng kiểu char

 Dữ liệu được trỏ bởi con trỏ hằng thì không thể thay đổi nhưng con trỏ thì có thể.

answer_ptr = "Fifty-One"; // đúng (answer_ptr là biến con trỏ)

*answer_ptr = 'X'; // sai (*answer_ptr là hằng)

Trang 16

Con trỏ hằng …

 Nếu khai báo:

char *const nameptr = "Test"; //name_ptr là con trỏ hằng nameptr = "New"; // sai (name_ptr là hằng)

*nameptr = 'B'; // đúng (*nameptr là char)

 Nếu khai báo như sau thì không thể thay đổi được cả con trỏ và nội dung của con trỏ:

const char* const titleptr = "Title";

Trang 17

int array[5] = { 23, 5, 12, 34, 17 };

// sử dụng chỉ số để truy nhập tới các phần tử của mảng

for (int i=0; i< 5; i++)

cout << array[i] << endl;

// sử dụng con trỏ để truy nhập tới các phần tử của mảng

for (int i=0; i< 5; i++)

cout << *(array+i) << endl;

Trang 19

Con trỏ là tham số của hàm

 C++ cung cấp 3 cách truyền tham số:

 Truyền tham trị: void f(int x);

 Truyền tham chiếu: void f(int& x);

 Truyền con trỏ: void f(int* x);

Trang 20

Con trỏ là tham số của hàm …

void swap( double& x, double& y)

swap(a,b); // gọi tham chiếu của biến a và b

swap(&a, &b); // sử dụng địa chỉ của biến a và b

Trang 21

Con trỏ là tham số của hàm…

void bsort (double* ptr, int n)

Trang 22

Phép toán học trên con trỏ

 Phân biệt các phép toán trên biến con trỏ và biến thông thường.

Trang 24

{ int* pint; pint=(int*)data; ++(*pint); }}

Trang 25

Con trỏ null

 Con trỏ có giá trị null tức là không trỏ vào một địa chỉ nhớ cụ thể nào.

Trang 28

Bộ nhớ động

 Cấp phát bộ nhớ trong khi thực thi

chương trình

 Toán tử new: cấp phát bộ nhớ

 pointer = new type

 pointer = new type [number_of_elements]

 Toán tử delete: xóa vùng nhớ đã cấp

 delete pointer;

 delete [] pointer;

Trang 29

int i,n; int * p;

cout << "How many numbers would you like to type? "; cin >> i;p= new int[i];

if (p == 0)

cout << "Error: memory could not be allocated";

else{

for (n=0; n<i; n++){

cout << "Enter number: ";

cin >> p[n];

}cout << "You have entered: ";

for (n=0; n<i; n++)

cout << p[n] << ", ";

delete[] p;

}return 0;

Ngày đăng: 04/07/2014, 14:20

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w