1. Trang chủ
  2. » Giáo Dục - Đào Tạo

KIỂU DỮ LIỆU CÓ CẤU TRÚC TRONG C

39 4 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 39
Dung lượng 381,75 KB

Nội dung

double strtod const char *nPtr, char**endPtr ; Converts the stringnPtr todouble.long strtol const char *nPtr, char**endPtr, int base ; Converts the stringnPtr tolong.unsigned long strtou

KIỂU DỮ LIỆU CÓ CẤU TRÚC TRONG C Kiểu Mảng Mảng xâu kí tự Kiểu Bản ghi Mảng ghi Kiểu Union Thao tác bit Kiểu Enum KIỂU MẢNG Các mảng • Là cấu trúc gồm phần tử liệu có liên quan với • Các thực thể tĩnh (Static) – kích thước khơng thay đổi suốt chương trình (Phân biệt với: Cấu trúc liệu động (Dynamic) Tên mảng (tất phần tử có chung tên c) Khái niệm mảng c[0] -45 c[1] c[2] c[3] 72 c[4] 1543 c[5] -89 • Tên mảng c[6] c[7] 62 • Số vị trí c[8] -3 c[9] • Nhóm định vị nhớ liên tiếp • Cùng chung tên kiểu liệu Tham chiếu đến phần tử, cụ thể Định dạng: c[10] 6453 c[11] 78 arrayname[ position number ] • phần tử có vị trí • n phần tử mảng với tên c: – c[ ], c[ ] c[ n – ] Số vị trí phần tử mảng c Các phần tử mảng giống biến c[ ] = 3; printf( "%d", c[ ] ); • Thực thao tác ngoặc [] để xác định số + Nếu x = c[ - ] == c[ ] == c[ x ] + Chỉ số mảng xác định biểu thức toán học Khai báo mảng Khi khai báo mảng • Tên mảng • Kiểu mảng • Số phần tử Cú pháp: arrayType arrayName[ numberOfElements ]; • Ví dụ: int c[ 10 ]; float myArray[ 3284 ]; Khai báo nhiều mảng có kiểu • Cú pháp tương tự khai báo biến • Ví dụ: int b[ 100 ], x[ 27 ]; Khai báo khởi tạo mảng Khởi tạo mảng: khai báo gắn giá trị phần tử int n[ ] = { 1, 2, 3, 4, }; • Nếu khơng đủ biến phần tử bên phải int n[ ] = { } // Tất phần tử • Nếu q nhiều phần tử báo lỗi cú pháp • C khơng kiểm tra giới hạn mảng • Nếu bỏ qua kích thước, sử dụng mặc định số phần tử khởi tạo int n[ ] = { 1, 2, 3, 4, }; Khởi tạo phần tử, mảng có phần tử Ví dụ: Khai báo khởi tạo mảng /* Fig 6.4: fig06_04.c Initializing an array with an initializer list */ Program Output #include Element Value /* function main begins program execution */ int main() { /* use initializer list to initialize array n */ int n[ 10 ] = { 32, 32, 27, 27, 64, 64, 18, 18, 95, 95, 14, 14, 90, 90, 70, 70, 60, 60, 37 }; 10 int i; /* counter */ 11 12 printf( "%s%13s\ "%s%13s\n", n", "Element", "Element", "Value" ); 13 14 /* output contents of array in tabular format */ 15 for ( i = 0; i < 10; 10; i++ ) { 16 17 printf( "%7d%13d\ "%7d%13d\n", n", i, n[ i ] ); } /* end for */ 18 19 return 0; /* indicates successful termination */ 20 32 27 64 18 95 14 90 70 60 37 21 } /* end main */ Mối liên hệ mảng trỏ C Ví dụ: Tên array &array[ ] (địa phần tử mảng) /* Fig 6.12: fig06_12.c The name of an array is the same as &array[ ] */ #include /* function main begins program execution */ int main() { char array[ ]; /* define an array of size */ 10 printf( " array = %p\ %p\n&array[0] = %p\ %p\n" 11 " &array = %p\ %p\n", n", 12 array, &array[ ], &array ); 13 14 return 0; /* indicates successful termination */ 15 16 } /* end main */ array = 0012FF78 &array[0] = 0012FF78 &array = 0012FF78 Mảng nhiều chiều Mảng nhiều chiều • Bảng với hàng cột (m hàng n cột) • Giống ma trận: số đầu hàng (row), sau cột (column) Column Row Row Row Column Column Column a[ ][ ] a[ ][ ] a[ ][ ] a[ ][ ] a[ ][ ] a[ ][ ] a[ ][ ] a[ ][ ] a[ ][ ] a[ ][ ] a[ ][ ] a[ ][ ] Chỉ số cột-Column Tên mảng Chỉ sô hàng-Row Mảng nhiều chiều Khởi tạo • int b[ ][ ] = { { 1, }, { 3, } }; • Khởi tạo theo hàng dấu {} • Nếu khơng đủ, phần tử cịn lại nhận giá trị int b[ ][ ] = { { }, { 3, } }; Tham chiếu phần tử • Chỉ hàng cột printf( "%d", b[ ][ ] ); • Nhập giá trị cho phần tử (i,j) mảng scanf(“%d”, &b[i][j]); Ví dụ: Khởi tạo mảng đa chiều /* Fig 6.21: fig06_21.c Initializing multidimensional arrays */ #include void printArray( const int a[][ ] ); /* function prototype */ /* function main begins program execution */ int main() { 10 /* initialize array1, array2, array3 */ 11 int array1[ ][ ] = { { , , }, { , , } }; 12 int array2[ ][ ] = { , , , , }; 13 int array3[ ][ ] = { { , }, { } }; 14 15 printf( "Values in array1 by row are:\ are: \ n" ); 16 printArray( array1 ); 17 18 printf( "Values in array2 by row are:\ are: \ n" ); 19 printArray( array2 ); 20 21 printf( "Values in array3 by row are:\ are: \ n" ); 22 printArray( array3 ); 23 return ; /* indicates successful termination */ 24 25 26 } /* end main */ 27 28 /* function to output array with two rows and three columns */ 29 void printArray( const int a[][ ] ) 30 { 31 int i; /* counter */ 32 int j; /* counter */ Program Output 33 34 /* loop through rows */ 35 for ( i = 0; i

Ngày đăng: 25/01/2024, 18:22

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

TÀI LIỆU LIÊN QUAN

w