Một con trỏ kí tự có thể xem như một biến xâu kí tự, trong đó xâu chính là tất cả các kí tự kể từ byte con trỏ trỏ đến cho đến byte '\0' gặp đầu tiên. Các hàm trên xâu vẫn được sử dụng như khi ta khai báo nó dưới dạng mảng kí tự. Ngoài ra khác với mảng kí tự, ta được phép sử dụng phép gán cho 2 xâu dưới dạng con trỏ. Khi khai báo xâu dạng con trỏ nó vẫn chưa có bộ nhớ cụ thể, vì vậy thông thường kèm theo khai báo ta cần phải xin cấp phát bộ nhớ cho xâu với độ dài cần thiết. #include #include #include int main() { char *s="Ky Thuat Lap Trinh", *t; t = new char[33]; //Cấp phát bộ nhớ động cho t strncpy(t, s, 8); //Copy nội dung 8 kí tự đầu của s sang t cout< } 4.6 Mảng con trỏ Mảng con trỏ là mảng trong đó các phần tử của nó là một con trỏ trỏ đến một mảng nào đó. Nói cách khác một mảng con trỏ cho phép quản lý nhiều mảng dữ liệu cùng kiểu. Cách khai báo: *a[size]; Ví dụ: int *a[10]; /* khai báo một mảng chứa 10 con trỏ. Mỗi con trỏ a[i] chứa địa chỉ của một mảng nguyên nào đó. */ VD: #include using namespace std; int main() { int a[4]={1,2,3,4}, b[4]={4,5,6}, c[4]={9,8,7,3}, i, j; int *p[3]={a, b, c}; // mảng p là các con trỏ trỏ đến a, b,c for(i=0; i<3; i++) { for(j=0; j<4; p[i]++, j++) cout<<*p[i]<<" "; cout< } }
Chia sẻ với bạn bè của bạn: |