Tài liệu Tóm tắt C P1 ppt

20 301 0
Tài liệu Tóm tắt C P1 ppt

Đ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

Xin chào bạn! Cám ơn bạn đã quan tâm đến tài liệu, tải xuống và sử dụng nó. Mình cũng chỉ là người đang tìm hiểu về cái ngôn ngữ C này. Mình đã tìm các ebook, tài liệu có liên quan, rồi upload lên mạng chia sẻ…hy vọng phần nào giúp ích cho bạn mới làm quen với lập trình. Rất mong được làm quen với các bạn gần xa yêu thích môn lập trình để mình học kinh nghiệm. Liên lạc: Mình ở TP.HCM Yahoo: laptrinh_123 Email : dung.softwares@gmail.com Hướng lâu dài của mình là theo ngành “Lập trình ứng dụng web”. Theo ngành này cần phải biết khá nhiều: Lập trình (PHP,MySQL…) - Đồ họa ( Flash, Photoshop…), chưa kể những thứ tổng hợp linh tinh khác có liên quan như là các ngôn ngữ lập trình khác… Nói chung là có nhiều thứ để học hỏi lắm. Mình luôn sẵn sàng đón nhận sự giúp đỡ của các bạn có kinh nghiệm chuyên môn, giao lưu với các bạn có cùng sở thích như mình, trao đổi các tài liệu có liên quan đến các lĩnh vực trên… Không biết bạn nghĩ sao, chứ mình thấy tự học mà chỉ theo cái cách lên mạng tải ebook về rùi in ra và ngâm kíu thì… chậm tiến lắm. Mình nghĩ phải có sự học hỏi từ những người có K/Nghiệm khác thì mới tốt. Bạn bè sẽ bổ sung cho nhau những lỗ hổng kiến thức… có tác dụng tích cực hơn. “HỌC THÀY KO BẰNG HỌC BẠN” mà lại… TP.HCM, ngày 20/07/2009 HTD (TH0003) C Programming (Se) Page: 1 ôn tập CáC KIếN THứC CB Về LậP TRìNH C [] A.CáC PHầN Tử Cơ BảN: Các phép tính: Phép toán cơ bản: + , - , * , / , %(lấy phần d). Phép toán tăng giảm: x++ hay ++x ( x , x): tăng (giảm) x xuống 1 đơn vị. Phép toán trên Bit: & (and), | (or), ^ (XOR), << (dịch trái), >> (dịch phải). Biểu thức điểu kiện: cú pháp: BT1? BT2: BT3 (BT: Biểu thức). Nếu BT1 đúng(<>0) thì BT điều kiện trên = giá trị của BT2 ngợc lại = giá trị của BT3 nếu BT1 sai (=0). VD: printf(Min of a & b: %d,a<b? a:b); Kiểu dữ liệu: int (-32768 32767) (2 hoặc 4 Byte); unsigned int (0 65535). char (-128 127) (1 Byte); unsigned char (0 255). long (-2147483648 2147483647) (4 Byte). unsigned long (0 4294967297). float (3.4 E-38 3.4E+38) (4 Byte). double (1.7E-308 1.7E+308) (8 Byte). long double (3.4E-4932 1.1E4932). Định nghĩa kiểu với typedef: typedef khaibáo VD: tạo một kiểu ma trận kích thớc [20][20] với tên l matrix : typedef float matrix[20][20]; Biến, hằng số: Khai báo biến: kiểudữliệu tênbiến; hay kiểudữliệu tênbiến = giátrịkhởiđầu; Khai báo hằng số: const type NAME=giátrị; hay #define tênhằngsố gíatrị; VD: const float Pi=3.14; #define Pi 3.14; Bỏch khoa Online: hutonline.net HTD (TH0003) C Programming (Se) Page: 2 Các hm cơ bản : (Các hm kiểm tra đựơc khai báo trong <ctype.h>). fabs(x): lấy giá trị tuyệt đối. sin(x), cos(x), tan(x): lấy sin, cos, tang của x. floor(x): Lấy phần nguyên của số x. exp(x): tính e mũ x (e x ). flushall(): xoá bộ đệm bn phím. log(x): tính ln(x). log10(x): tính lg(x). pow(x,n): tính x mũ n (x n ). M_PI: Hằng số Pi. void calloc(unsigned n, unsigned size): cấp phát vùng nhớ n*size byte, nếu thnh công hm trả về địa đầu vùng nhớ đợc cấp, ngợc lại trả về NULL. Để giải phóng vùng nhớ đợc cấp phát bởi malloc hay calloc do pt trỏ tới ta dùng : void free(void *pt); <alloc.h> int getchar(void): nhận một ký tự từ bn phím (stdin), trả về ký tự nhận đợc. int random(int n): cho một giá trị ngẫu nhiên từ 0 n-1. <stdlib.h> int tolower(int c): đổi ký tự chữ hoa sang chữ thừơng. <ctype.h> int toupper(int c): đổi ký tự chữ thờng sang chữ hoa.<ctype.h> int isalnum(int c): kiểm tra c có phải l ký tự alphanumeric? (chữ cái hay số). int isalpha(intc): kiểm tra c có phải l chữ cái không? int isdigit(int c): kiểm tra c có phải l chữ số không? Int ispunct(int c): kiểm tra c có phải l ký tự chấm câu không? int isxdigit(int c): kiểm tra c có phải l chữ số hệ 16 không? int isupper(int c): kiểm tra c có phải l chữ hoa (từ A đến Z) không. Chi chú: Các hm kiểm tra nếu thoả thì trả về giá trị <>0, ngợc lại trả về 0. Phép gán: Tên biến = Biểuthức / biến; Xuất nhập dữ liệu: Xuất: printf(ký tự điều khiển,bt1,bt2, ); Trong đó danh sách biểu thức có thể bao gồm biểu thức, số, hay văn bản, các đối tợng phải cách nhau bởi dấu phẩy. Vd: printf( Nam %d la the ky %d: , 1999+2, 40/ 2); Bỏch khoa Online: hutonline.net HTD (TH0003) C Programming (Se) Page: 3 ệ Nam 2001 la the ky 20 Nhập: scanf(các ký tự định dạng,biến1, biến2, ). scanf(%d%d,&a,&b); b.Cấu trúc điều kiện, rẽ nhánh v vòng lặp: if (bieuthuc) lệnh1; hay if (bieuthuc) lệnh1; else lệnh2; Trong cấu trúc thứ 1, nếu bieuthuc cho giá trị khác 0 thì thực hiện lệnh1 v =0 thì thôi, còn trong cấu trúc thứ 2 nếu bieuthuc cho giá trị khác 0 thì thực hiện lệnh1 v =0 thì thực hiện lệnh2. Chú ý l trong thân if v else chỉ l 1 câu lệnh đơn, nếu có nhiều lệnh thì phải lồng vo { }; switch (biểu thức) { case x: lệnh; break; case n: lệnh; break; default :lệnh; break; } ý nghĩa : câu lệnh rẽ nhánh switch sẽ tính giá trị của biểu thức v thực hiện lệnh tơng ứng trong case no có giá trị ny. Nếu không có giá trị trong case no = giá trị của biểu thức thì thực hiện lệnh sau default. for (biếnđkh[= giá trị đầu]; điều kiện ; phép toán thay đổi giá trị biến đkh ) lệnh ; Nếu có nhiều lệnh thì phải lồng vo { }; while (biểu thức) lệnh; Nếu có nhiều lệnh thì lồng vo{ }; ý nghĩa : Trong khi biểu thức <>0 thì thực hiện lệnh. do lệnh while(biểu thức) ; Nếu có nhiều lệnh thì lồng vo {}. ý nghĩa : Thực hiện lệnh nhiều lần trong biểu thức <>0 . goto v nhãn: (Nhãn (handle) có dạng nh tên biến, đứng trớc dấu 2 chấm :) Bỏch khoa Online: hutonline.net HTD (TH0003) C Programming (Se) Page: 4 Cú pháp: goto nhãn; Khi gặp dòng ny máy sẽ nhãy đến câu lệnh có nhãn viết sau từ khoá goto. CONTINUE, BREAK V SIZEOF: o Câu lệnh continue dùng để bắt đầu một vòng lặp mới của chu trình bên trong nhất chứa nó. Trong thân for máy sẽ chuyển đến bớc khởi đầu kế tiếp. Còn trong while v do while máy sẽ chuyển đến xác định giá trị biểu thức sau while v tiến hnh kiểm tra điều kiện kết thúc vòng lặp, (continue không dùng cho switch). o Câu lệnh break cho phép ta thoát khỏi for, while, do while v switch. Khi có nhiều vòng lặp lồng nhau, break sẽ đa ra khỏi vòng lặp hay switch bên trong nhất. o Toán tử sizeof cho kích thớc (byte) của một kiểu hay một đối tợng dữ liệu, cú pháp: sizeof(kiểudữliệu) hay sizeof(đốitợngdữliệu). Các kiểu dữ liệu nh int, char, float, kiểu tự định nghĩa, Các đối tợng dữ liệu nh mảng, cấu trúc, biến, Thờng dùng để xác định số phần tử của mảng khi đợc khởi đầu: int a[]={1,2,3,4,5,6}; int spt=sizeof(a)/sizeof(int); C. Hm (FUNCTION) : Định nghĩa Hm: <Kiềudữliệu / void> TênHm (Danhsáchthamsố) <Khai báo kiểu cho các tham số>; {Khai báo biến cục bộ v thân hm}; Sử dụng Hm: Tên hm (Danhsáchcácthamsốthựcnếucó); Truyền tham số: + Truyền bằng trị: đây l chế độ truyền tham số mặc định của C. Với cách truyền ny giá trị của tham số thực sẽ không bị thay đổi sau khi hm thực hiện. +Truyền bằng biến: tức muốn truyền cả nội dung lẫn địa chỉ của biến. Khi đó ta phải sử dụng biến con trỏ. Bỏch khoa Online: hutonline.net HTD (TH0003) C Programming (Se) Page: 5 D. Mảng (Array): Mảng 1 chiều: Khai báo tờng minh: Kiểu tenmang[số phần tử] ; Khai báo không tờng minh: Kiểu tenmang []; Cách khai báo ny đợc sử dụng trong các trờng hợp: vừa khai báo vừa gán trị (vd : int a[]={1,2,3,7}; ), mảng l tham số hm (vd : int nhapmang(int a[],int n, int m) ;). Xuất/ nhập mảng : ta dùng vòng lặp for(vd for (i=1; i<n; i++) ;), hay ta có thể tạo một hm để nhập mảng với số phần tử không biết trớc, kết thúc khi nhập số 0. void nhap(int a[], int*n) { for (*n=0;*n<20,(*n)++) { printf(A[%d]:,*n); scanf(%d,&a[*n]); if (a[*n]==0) break; } } Sắp xếp mảng giảm dần (Buble sort) . for (i=0;i<n-1;i++) for (j=i+1;j<n;j++) if (A[i]<A[j]) { tam=A[i]; A[i]=A[j]; A[j]=tam; } Mảng 2 chiều: Khai báo tờng minh : Kiểu tenmang[sốcột][sốdòng] ; Vd: a[20][10]; Khai báo không tờng minh : Kiểu tenmang [ ][sốcột] ; sử dụng cách ny trong các trờng hợp: vừa khai báo vừa gán trị(Vd: int a[][3]={{1,2,3},{-1,- 2,-3}};), mảng l tham số hm( Vd: void nhap(a[][max], int n);). Bỏch khoa Online: hutonline.net Xuất/ nhập mảng: ta dùng 2 vòng lặp for I:=1 to n do for j:=1 to m do Chú ý l ta không thể dùng phép toán địa chỉ để nhập các phần tử của mảng hai chiều (ngoại trừ mảng kiểu int), m phải thông qua một biến tạm trung gian. Thao tác : (i: đkh dòng, j: đkh cột, n: số dòng) +Đờng chéo: +Các phần tử đối xứng: -Qua đờng chéo chính: a[i][j] v a[j][i]. -Qua đờng chéo phụ: a[i][j] v a[n-j-1][n-i-1]. -Qua tâm: a[i][j] v a[n-i-1][n-j-1]. Duyệt ma trận : + Nữa trên đ/c chính: for (i=0; i<n-1; i++) for (j=i+1; j<n; j++) + Nữa dới đ/c chính: for (i=1; i<n; i++) for (j=0; j<i; j++) + Nữa trái ma trận: for (i=0; i<n; i++) for (j=0; j<n/2; j++) + Nằm trên đờng chéo chính: for (i=0; i<n; i++) với a[i][i] l các pt trên đ/c chính. + Đ/C song song với đ/c chính: for (i=0; i<n-k; i++) với a[i][i+k] l các pt // với đ/c chính. HTD (TH0003) C Programming (Se) Page: 6 E. Con Trỏ (Pointer): Bỏch khoa Online: hutonline.net HTD (TH0003) C Programming (Se) Page: 7 Khai báo: + <Kiểu dữ liệu> *Tên_con_trỏ; Vd : int *pt,*x; + Mảng con trỏ: <Kiểu dữ liệu> *Tên_con_trỏ[sốphầntửmảng]; Vd : int *pt[10]; + Hm con trỏ: *Tên_hm (Danh sách các tham số) ; Các phép toán trên con trỏ: + Phép gán: khi thực hiện phép gán cho biến con trỏ thì biểu thức bên phải phép gán phải có giá trị l địa chỉ của một biến hay mảng v phải cùng kiểu với kiểu con trỏ. Vd: int x,*pt; p=&a; + Phép toán lấy nội dung của biến do con trỏ chỉ đến(*): *tên_biến_con_trỏ. VD : y=*x; + Phép toán tăng giảm: pt++,pt ; Chú ý trong phép toán ny l mỗi lần tăng (giảm) l tăng (giảm) kích thớc của kiểu dữ liệu m nó trỏ đến (chứ không phải l một đơn vị). Con trỏ l tham số Hm: Nếu một hm có tham số l kiểu con trỏ thì khi truyền tham số ny cho hm phải truyền địa chỉ của biến có kiểu tơng ứng. Vd: void input (int a[], int*x); Gọi hm: input (a,&x); Con trỏ v mảng: +Mảng một chiều: Đối với mảng một chiều khi sử dụng mảng nếu chỉ ghi tên mảng m không ghi chỉ số thì có nghĩa l địa chỉ của phần tử thứ zero của mảng.( array <=> &array[0]). Khi một hm có tham số l mảng thì khi gọi hm ta chỉ truyền tên của mảng, không phải ghi chỉ số mảng. Vd: input (a , n); nhập mảng A gồm n phần tử. +Mảng nhiều chiều: Đối với mảng hai chiều khi sử dụng mảng nếu chỉ ghi tên mảng m không ghi chỉ số thì có nghĩa l địa chỉ của hng đầu tiên trong ma trận. (a &a[0] (&a[0][0]). Không thể dùng phép toán địa chỉ để nhập cho mảng hai chiều (ngoại trừ kiểu int). Bỏch khoa Online: hutonline.net HTD (TH0003) C Programming (Se) Page: 8 Không thể dùng biến con trỏ để nhập cho mảng hai chiều. Giải pháp cho trờng hợp ny l ta nhập thông qua một biến tạm sau đó gán lại biến tạm ny cho cho phần tử tơng ứng của mảng. F. CHUổI (string): Khai báo: tơng tự nh khai báo mảng ta cũng có hai cách khai báo l khai báo tờng minh v không tờng minh: char tenchuoi [chiều di thực+1]; char tenchuoi [ ]; Các thao tác trên kiểu chuổi: + Nhập: Lệnh scanf(%s,tenchuoi); Lệnh ny không thể nhập vo một chuổi có chứa ký tự khoảng trắng, tab, enter, v để lại ký tự \n trong bộ đệm bn phím. Lệnh gets(tenchuoi); Đợc khai báo trong string.h. Lệnh ny có thể nhập đợc chuổi có khoảng trắng, kết thúc khi gặp ký tự xuống dòng(\0). + Xuất: Lệnh printf(%s,tenchuoi); Lệnh puts(tenchuoi); Xuất chuổi v xuống dòng. + Gán chuổi: Muốn sử dụng phép gán chuổi ta phải sử dụng biến con trỏ v hm calloc để cấp phát vùng nhớ cho biến ny. Vd: char *str; str=calloc(40,sizeof(char)); str=MediaSpace Club; Các hm thờng dùng với kiểu chuổi, ký tự: (phần lớn đợc khai báo trong string.h). strcat( char*dest, char *scr): nối chuổi dest với chuổi scr; strspn(*str, *str_con): cho độ di đoạn đầu tiên lớn nhất của str m mọi ký tự của đoạn đều có mặt trong chuỗi str_con. strlen(char *str): cho chiều di thực của chuổi str. char *strupr(char *s): chuyển chuổi từ ký tự thờng sang HOA. Bỏch khoa Online: hutonline.net HTD (TH0003) C Programming (Se) Page: 9 char *strlwr(char *s): chuyển chuổi từ ký tự HOA sang thờng. char *strrev(char *s): đảo ngợc cả chuổi trừ ký tự kết thúc(\0). char *strcpy(char *dest, char *scr): sao chép ton bộ chuổi src sang chuổi dest. char *strncpy(char *dest, char *scr,n): sao n ký tự đầu của chuổi src sang chuổi dest. char *strchr(char *str, int c): tìm sự xuất hiện đầu tiên của c trong str. Nếu tìm thấy hm trả về địa chỉ của ký tự tìm đợc trong str, ngợc lại trả về NULL. char *strstr(char *str, char *str_con): tìm sự xuất hiện đầu tiên của str_con trong str. Nếu thấy, hm cho địa chỉ của chuỗi con (trùng với str_con) trong str, ngợc lại hm trả về NULL. char *strbrk(char *s1, char *s2): duyệt trong s1 để tìm ký tự đầu tiên khớp với bất kỳ ký tự no của s2. Nếu có xuất hiện, hm cho địa chỉ của ký tự tìm thấy trong s1, ngựơc lại hm trả về NULL. int strcmp(char *s1, char *s2): so sánh 2 chuổi theo thứ tự, hm trả về < 0 nếu chuỗi s1 < chuỗi s2 ; = 0 nếu chuỗi s1 = chuỗi s2 ; >0 nếu chuỗi s1 lớn hơn chuỗi s2. int stricmp(char *s1, char *s2): giống nh strcmp nhng không phân biệt chữ HOA, chữ thờng khi so sánh. int memcmp(char *s1, char *s2, unsighed n); So sánh chuổi s1 v s2 một cách chính xác, phân biệt HOA thờng trong phạm vi n byte v trả về: <0 nếu s1 nhỏ hơn s2; = 0 nếu s1 trùng s2 ; >0 nếu s1 lớn hơn s2. char * strncat(char *s,char *s1,int n): ghép n ký tự đầu tiên của s1 vo s. char *itoa(int x,char *s,int cs): Chuyển số nguyên x trong hệ đếm cơ số cs (cs=10: hệ 10, cs=8:hệ 8, cs=16:hệ 16) sang chuỗi v lu vo vùng nhớ s. Hm trả về địa chỉ của vùng s . (stdlib.h) int atoi(char *s): chuyển chuỗi s sang giá trị int. long atol(char *s): chuyển chuỗi s sang giá trị long. Bỏch khoa Online: hutonline.net [...]... bạn phải biết chơng trình c a mình m c phải lỗi gì, điều ny đ c Borland C+ + thông báo trong c a sổ Message, v từ đây bạn c thể tra c u c c phơng pháp sữa chữa trong c c sách tra c u, đặt biệt l trong help online c a Borland C+ + + Khi gặp c c lỗi Logic lm cho chơng trình chạy không đúng hay cho kết quả sai ta c thể sử dụng c c ch c năng Debug c a Borland C để tiến hnh rở rối: -Chạy từng b c: dùng phím... tiếp c a một biến c u tr c lớn hơn (C u tr c lồng nhau) Một số phép toán c bản trên kiểu c u tr c: c c thao t c trên biến c u tr c phải đ c th c hiện thông qua c c thnh phần c a nó (ngoại trừ phép gán) Thao t c trên c c thnh phần c a c u tr c cũng nh thao t c trên c c biến c kiểu tơng ứng Vd: + Nhập: scanf(%s,&nhanvien.ten); + Xuất: printf(\n Ten nhan vien la: %s.,nhanvien.ten); + C ng: luong=nhanvien1.luong... c u tr c, khi đó muốn khai báo biến ta không c n đặt struct tr c tên _c u_tr c Định nghĩa kiểu v khai báo biến kết hợp: struct tên _c u_tr c { c c thnh phần c u tr c giống nh trên; } biến_1,biến_2, ,biến_n; Truy xuất đến c c thnh phần c u tr c: + Đơn giản: biến _c u_tr c. biến_thnh_phần; + Ph c tạp: biến _c u_tr c. biến _c u_tr c_ 2.biến_thnh_phần; đ c sử dụng khi biến c u tr c 2 l thnh phần tr c tiếp c a một... EOF Ghi dữ liệu theo khuôn dạng: int fprintf(FILE *fp, const char *control, ); Với fp l con trỏ File, control chứa địa chỉ c a chuổi điều khiển (giống nh trong hm printf), l danh sách c c đối m giá trị c a chúng c n ghi vo File VD: fprintf(fp,\n this year: %d,iYear); Đ c dữ liệu theo khuôn dạng: int scanf(FILE *fp, const char *control, ); Với fp l con trỏ File, control chứa địa chỉ c a chuổi điều... danh sách c c đối chứa kết quả đ c đ c từ File VD: fscanf(fp,%d%f,&ia,&fa); Ghi chuổi ký tự: int fputs(const char *s, FILE *fp); Với s l con trỏ chỉ tới địa chỉ đầu c a một chuổi ký tự kết th c bằng \0 Hm sẽ ghi chuổi s lên File fp, nếu thnh c ng trả về ký tự cuối c ng đ c ghi vo File, ng c lại trả về EOF Đ c chuổi (dãy) ký tự từ File: char *fgets(char *s, int n, FILE *fp); Với s l con trỏ kiểu char... (TH0003) C Programming (Se) Page: 10 Bỏch khoa Online: hutonline.net + Gán: ta c thể gán hai biến c u tr c cho nhau; gán biến cho phần tử mảng; gán phần tử mảng cho biến; gán hai phần tử mảng cho nhau Điều c n lu ý l c c biến v c c phần tử mảng phải c ng kiểu + Khởi tạo giá trị đầu cho c u tr c: ta khởi tạo giá trị bằng c ch viết vo sau khai báo c a chúng c c giá trị c a c c thnh phần Vd: struct nhanvien2{Nguyen... Bỏch khoa Online: hutonline.net c thể quan sát giá trị c a c c biến, mảng, qua mỗi dòng th c chơng trình (gõ vo tên biến, mảng, c n xem trong khung Evaluate v xem giá trị trong khung result), hay lm thay đổi giá trị c c biến, tính toán c c biểu th c, c c hm -Dùng c a sổ Watch (Window\Watch) để theo dõi sự thay đổi giá trị c a c c biến, mảng Để xem c c biến trong c a sổ Watch, ta chọn Debug\Watch\Add... mẫu tin kích th c size byte từ File fp vo vùng nhớ pt Hm trả về một giá trị = số mẫu tin th c sự đ c đ c C c hm fread, fwrite thờng dùng để đ c ghi c c đối tợng c c ng độ lớn nh c u tr c, số th c, Một số hm kh c thao t c trên FILE: (c p II) int fflush(FILE *fp); lm sạch vùng đệm File fp, thnh c ng ->0, ng c lại >EOF int fflushall(void); lm sạch vùng đệm c a c c File đang mở, nếu thnh c ng hm trả... m c định: void setpalette(int colornum, incolor); X c nhận giải mu hiện hnh: void palette(struct palettetype *palette); C u tr c của palettetype đ c trình by trong help online với index l palettetype C c hm getcolor(), getbkcolor() v getmaxcolor() trả về mu đã x c định với setcolor, setbkcolor, v số lợng mu c c đại thụ c dãy mu hiện hnh Vẽ cung tròn: void arc(int x, int y, int gocdau, int goccuoi,... Debug\Watch\Add Watch v gõ tên biến c n xem vo, nhấn F7 hay F8 để chạy từng b c chơng trình v xem gía trị c a biến C thể nhập vo nhiều biến, mỗi lần chỉ đ c nhập một biến Để xoá một biến ta chỉ di chuyển đến biến muốn xoá trong c a sổ Watch v nhấn Delete Nếu không thấy c a sổ Watch khi chạy từng b c chơng trình, ta nhấn F5 -Dùng c a sổ User Screen để quan sát kết quả th c hiện c a chơng trình: Window\ User Screen . th c( ). char *strcpy(char *dest, char *scr): sao chép ton bộ chuổi src sang chuổi dest. char *strncpy(char *dest, char *scr,n): sao n ký tự đầu c a. toán c bản trên kiểu c u tr c: c c thao t c trên biến c u tr c phải đ c th c hiện thông qua c c thnh phần c a nó (ngoại trừ phép gán). Thao t c trên c c

Ngày đăng: 22/01/2014, 19:20

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan