- Cấu trúc lặ p
7. int a[size]; 8.
Hướng dẫn lập trình hướng đối tượng với C++_ first_pace
21.
22. return 0;
23.}
Thông qua con trỏ: tên mảng thực chất là một con trỏ hằng, trỏ đến phần tử đầu tiên của mảng. Vì vậy ta có thể truy xuất tới các phần tử của mảng thông qua con trỏ này. Chương trình trên được viết lại theo phong cách con trỏ.
C++ Code:
1. #include <iostream>
2. using namespace std;
3.
4. int main(){
5. int const size=5;
6. int n;
7. int a[size];8. 8.
9. cout << "Enter " << size << " integers\n";
10. for(int i=0; i<size; i++){11. cout << "a[" << i << "]= "; 11. cout << "a[" << i << "]= ";
12. cin >> *(a+i); // đọc dữ liệu vào a[i]
13. }14. 14.
15. cout << "Even numbers are: \n";
16. for(int i=0; i<size; i++){
17. if(*(a+i)%2==0){ // nếu a[i] chẵn
18. cout << *(a+i) << " "; // in ra a[i]19. } 19. } 20. } 21. 22. cout << 23. system("pause"); 24. return 0; 25.}
Ta có thể chỉ dùng con trỏ mà không cần dùng biến chạy i, đặc biệt là trong thao tác với chuỗi (string). Mọi tăng giảm đều thực hiện trên con trỏ, tuy nhiên tên mảng là một con trỏ hằng, không thể thay đổi được. Vì vậy ta phải thực hiện việc này thông qua một con trỏ khác. Chương trình sau thực hiện việc đổi tất cả các dấu cách (space) thành dấu chấm (dot). Lưu ý rằng, C++ không có kiểu built-in là string, string được cài đặt thông qua mảng các ký tự (kiểu char). Dấu hiệu kết thúc của một string là ký tự NULL (hay ký tự ‘\0’), đây chính là cơ sở để làm điều kiện kết thúc vòng lặp. Xem xét chương trình.
C++ Code:
69 Hướng dẫn lập trình hướng đối tượng với C++_ first_pace Hướng dẫn lập trình hướng đối tượng với C++_ first_pace
2. #include <cstdio>
3. using namespace std;
4. int main(){
5. char str[]="I am a superman, ha ha ha";
6. char* ptr=str;
7.
8. while(*ptr){ // nếu còn chưa hết xâu
9. if(*ptr==' '){ // nếu là dấu cách
10. *ptr='.'; // đổi thành dấu chấm
11. }