LẬP TRÌNH C nâng cao - bài 2 - nhắc lại về c-c++ part2
Số trang: 6
Loại file: pdf
Dung lượng: 134.72 KB
Lượt xem: 14
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
BÀI 2: NHẮC LẠI VỀ C/C++ (TIẾP THEO) BÀI 1: NHẮC LẠI VỀ C/C++ Nhập xuất cơ bảnbài này sẽ nhắc lại cho các hàm cơ bản như : khai báo hàm , biến ... và sự khai báo giữa c và c++... Cấu trúc (struct) Con trỏ cấu trúc (struct pointer)
Nội dung trích xuất từ tài liệu:
LẬP TRÌNH C nâng cao - bài 2 - nhắc lại về c-c++ part2 LẬP TRÌNH C/C++ NÂNG CAOYêu cầu trước khi đọc: học xong Lập trình C/C++ căn bản BÀI 2: NHẮC LẠI VỀ C/C++ (TIẾP THEO)Cấu trúc (struct)Con trỏ cấu trúc (struct pointer)CODEstruct Student{int id;};Student *s;Student m;s=&m;s->id=3; //means (*s).idcouttemp;a.name=new char[strlen(temp)+1];strcpy(a.name,temp); //phải dùng biến tạmStudent b=a;strcpy(b.name,a.name); //phải dùng strcpy, nếu không sẽ sao chép địa chỉ bộ nhớGọi hàm với cấu trúcCODEstruct Student{char name[10];int id;};Student m[3],a;m[0]=(Student){Pete,1};add(m[0].name,&m[0].id);Có 4 cách để thêm dữ liệu vào cấu trúc.Cách 1CODEvoid add(char name[],int *place){cin>>name;cin.get();cin>>*place;}add(a.name,&a.id);Cách 2CODEvoid add(Student &s){cin>>s.name;cin.get();cin>>s.id;}add10(a);Cách 3CODEvoid add(Student *s){cin>>(*s).name;cin.get();cin>>(*s).id;}add(&a);Cách 4CODEvoid add(Student *s){cin>>s->name;cin.get();cin>>s->id;}add(&a);Toán tử sizeof với structCODEstruct Hello{char c;double d;};sizeof(Mystruct)=12; vì c lấy một 32-bit word (4 byte, không phải1 byte)Con trỏ (pointer)Con trỏ trỏ đến một con trỏ khácCODEchar a=z; //a=z và giả sử địa chỉ của a=8277char *p=&a; //p=8277 và giả sử địa chỉ của p=6194char **p2=&p; //p2=6194 và địa chỉ của p2 sẽ là một cái gì đóCon trỏ void (void pointer)Con trỏ void dùng để trỏ đến bất cứ một kiểu dữ liệu nàoCODEvoid increase(void* data,int dataType){switch(dataType){case sizeof(char):(*((char*)data))++;break;case sizeof(int):(*((int*)data))++;break;}}int main(){char c=66;int a=-4;increase(&c,sizeof(char));increase(&a,sizeof(int));}Con trỏ hàm (function pointer)Con trỏ hàm dùng để trỏ đến một hàmCODEint addition(int a,int b){return a+b;}int subtraction(int a,int b){return a-b;}int (*minuse)(int,int) = subtraction;int primi(int a,int b,int(*functocall)(int,int)){return (*functocall)(a,b);}int main(){int m=primi(7,5,&addition);int n=primi(20,m,minuse);coutoutf
Nội dung trích xuất từ tài liệu:
LẬP TRÌNH C nâng cao - bài 2 - nhắc lại về c-c++ part2 LẬP TRÌNH C/C++ NÂNG CAOYêu cầu trước khi đọc: học xong Lập trình C/C++ căn bản BÀI 2: NHẮC LẠI VỀ C/C++ (TIẾP THEO)Cấu trúc (struct)Con trỏ cấu trúc (struct pointer)CODEstruct Student{int id;};Student *s;Student m;s=&m;s->id=3; //means (*s).idcouttemp;a.name=new char[strlen(temp)+1];strcpy(a.name,temp); //phải dùng biến tạmStudent b=a;strcpy(b.name,a.name); //phải dùng strcpy, nếu không sẽ sao chép địa chỉ bộ nhớGọi hàm với cấu trúcCODEstruct Student{char name[10];int id;};Student m[3],a;m[0]=(Student){Pete,1};add(m[0].name,&m[0].id);Có 4 cách để thêm dữ liệu vào cấu trúc.Cách 1CODEvoid add(char name[],int *place){cin>>name;cin.get();cin>>*place;}add(a.name,&a.id);Cách 2CODEvoid add(Student &s){cin>>s.name;cin.get();cin>>s.id;}add10(a);Cách 3CODEvoid add(Student *s){cin>>(*s).name;cin.get();cin>>(*s).id;}add(&a);Cách 4CODEvoid add(Student *s){cin>>s->name;cin.get();cin>>s->id;}add(&a);Toán tử sizeof với structCODEstruct Hello{char c;double d;};sizeof(Mystruct)=12; vì c lấy một 32-bit word (4 byte, không phải1 byte)Con trỏ (pointer)Con trỏ trỏ đến một con trỏ khácCODEchar a=z; //a=z và giả sử địa chỉ của a=8277char *p=&a; //p=8277 và giả sử địa chỉ của p=6194char **p2=&p; //p2=6194 và địa chỉ của p2 sẽ là một cái gì đóCon trỏ void (void pointer)Con trỏ void dùng để trỏ đến bất cứ một kiểu dữ liệu nàoCODEvoid increase(void* data,int dataType){switch(dataType){case sizeof(char):(*((char*)data))++;break;case sizeof(int):(*((int*)data))++;break;}}int main(){char c=66;int a=-4;increase(&c,sizeof(char));increase(&a,sizeof(int));}Con trỏ hàm (function pointer)Con trỏ hàm dùng để trỏ đến một hàmCODEint addition(int a,int b){return a+b;}int subtraction(int a,int b){return a-b;}int (*minuse)(int,int) = subtraction;int primi(int a,int b,int(*functocall)(int,int)){return (*functocall)(a,b);}int main(){int m=primi(7,5,&addition);int n=primi(20,m,minuse);coutoutf
Tìm kiếm theo từ khóa liên quan:
kỹ thuật lập trình lập trình c/c++ nâng cao lập trình c/c++ thủ thuật lập trình c ngôn ngữ lập trình nâng caTài liệu liên quan:
-
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 269 0 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 211 0 0 -
Giới thiệu môn học Ngôn ngữ lập trình C++
5 trang 197 0 0 -
Bài giảng Nhập môn về lập trình - Chương 1: Giới thiệu về máy tính và lập trình
30 trang 170 0 0 -
Luận văn: Nghiên cứu kỹ thuật giấu tin trong ảnh Gif
33 trang 154 0 0 -
Báo cáo thực tập Công nghệ thông tin: Lập trình game trên Unity
27 trang 120 0 0 -
Giáo trình về phân tích thiết kế hệ thống thông tin
113 trang 114 0 0 -
LUẬN VĂN: Tìm hiểu kỹ thuật tạo bóng cứng trong đồ họa 3D
41 trang 110 0 0 -
Bài giảng Kỹ thuật lập trình - Chương 10: Tổng kết môn học (Trường Đại học Bách khoa Hà Nội)
67 trang 107 0 0 -
Giáo trình Nhập môn lập trình VB6: Phần 2
184 trang 93 0 0