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

LẬP TRÌNH C nâng cao - bài 2 - nhắc lại về c-c++ part2

6 3 0

Đang tải... (xem toàn văn)

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ản bà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)

LẬP TRÌNH C/C++ NÂNG CAO Yêu cầu trước đọc: học xong Lập trình C/C++ 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) CODE struct Student { int id; }; Student *s; Student m; s=&m; s->id=3; //means (*s).id couttemp; a.name=new char[strlen(temp)+1]; strcpy(a.name,temp); //phải dùng biến tạm Student b=a; strcpy(b.name,a.name); //phải dùng strcpy, không chép địa nhớ Gọi hàm với cấu trúc CODE struct Student{ char name[10]; int id; }; Student m[3],a; m[0]=(Student){"Pete",1}; add(m[0].name,&m[0].id); Có cách để thêm liệu vào cấu trúc Cách CODE void add(char name[],int *place) { cin>>name; cin.get(); cin>>*place; } add(a.name,&a.id); Cách CODE void add(Student &s) { cin>>s.name; cin.get(); cin>>s.id; } add10(a); Cách CODE void add(Student *s) { cin>>(*s).name; cin.get(); cin>>(*s).id; } add(&a); Cách CODE void add(Student *s) { cin>>s->name; cin.get(); cin>>s->id; } add(&a); Toán tử sizeof với struct CODE struct Hello { char c; double d; }; sizeof(Mystruct)=12; c lấy 32-bit word (4 byte, byte) Con trỏ (pointer) Con trỏ trỏ đến trỏ khác CODE char a='z'; //a='z' giả sử địa a=8277 char *p=&a; //p=8277 giả sử địa p=6194 char **p2=&p; //p2=6194 địa p2 Con trỏ void (void pointer) Con trỏ void dùng để trỏ đến kiểu liệu CODE void 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 hàm CODE int 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); cout(*s).name; cin.get();

Ngày đăng: 20/05/2021, 08:45

Xem thêm: