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

Chia sẻ: Yukogaru | Ngày: | Loại File: PDF | Số trang:6

1
95
lượt xem
37
download

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

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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)

Chủ đề:
Lưu

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

  1. LẬP TRÌNH C/C++ NÂNG CAO Yê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) 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, nếu không sẽ sao chép địa chỉ bộ nhớ Gọi hàm với cấu trúc
  2. 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ó 4 cách để thêm dữ liệu vào cấu trúc. Cách 1 CODE void add(char name[],int *place) { cin>>name; cin.get(); cin>>*place; } add(a.name,&a.id); Cách 2 CODE void add(Student &s) { cin>>s.name; cin.get(); cin>>s.id; } add10(a); Cách 3 CODE void add(Student *s) {
  3. cin>>(*s).name; cin.get(); cin>>(*s).id; } add(&a); Cách 4 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; vì c lấy một 32-bit word (4 byte, không phải 1 byte) Con trỏ (pointer) Con trỏ trỏ đến một con trỏ khác CODE char a='z'; //a='z' và giả sử địa chỉ của a=8277 char *p=&a; //p=8277 và giả sử địa chỉ của p=6194 char **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ào CODE
  4. 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 một 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);
  5. } int main() { int m=primi(7,5,&addition); int n=primi(20,m,minuse); cout
  6. outf

CÓ THỂ BẠN MUỐN DOWNLOAD

Đồng bộ tài khoản