X ,x Kiểu số nguyên viết dưới dạng số hexa (cơ số 16) oKiểu số nguyên viết dưới dạng số octal ( cơ số 8)
Phép so sánh: là phép so sánh địa chỉ mà con trỏ lưu giữ
lưu giữ
Phép cộng con trỏ với số nguyên
▪ Ptr là con trỏ kiểu T, k là số nguyên thì (Ptr+k) là con trỏ kiểu T. Ptr trỏ tới phần tử t thì (Ptr+k) trỏ tới phần tử cách t một khoảng là k ( k<0 về miền địa chỉ lớn hơn và k<0 về miền địa chỉ nhỏ hơn)
Phép trừ
▪ p, q là hai con trỏ kiểu T thì p-q là số nguyên chỉ số phần
tử kiểu T nằm giữa hai phần tử do p và q trỏ tới.
7/2020 Cơ sở lập trình 123
Giống nhau: Tên của một mảng/con trỏ tương đương với
địa chỉ phần tử đầu tiên
Khác nhau: địa chỉ của mảng cố định (con trỏ hằng) còn vùng nhớ con trỏ trỏ tới có thể thay đổi (con trỏ thường).
Ví dụ
int numbers [20], *p; p = numbers; //hợp lệ
Mối liên hệ
▪ Các phần tử của mảng có thể được truy xuất thông qua chỉ số hoặc con trỏ. (a+i) &a[i], *(a+i) a[i]
Ví dụ: a[5] = 0; hoặc *(a+5) = 0;
Với mảng 2chiều
a là con trỏ trỏ tới a[0] và a[0] trỏ tới a[0][0]
a[0] &a[0][0] và * a[0] a[0][0] hay **a a[0][0] (a+i ) &a[i] và a[i]&a[i][0]
*a[i] a[i][0] hay *(*a+i) a[i][0] a[i]+j &a[i][j]
*( a[i]+j) a[i][j] hay *(*a +i+j) a[i][j]
7/2020 Cơ sở lập trình 125
3.3.1 Khái niệm
Kháiniệm
▪ Xâu làmột mảngcác kítự kể cả khoảng trắng.
▪ Một hằngxâu cónộidungđược đặttrongcặp dấu “ ”và
kếtthúc xâu là kítự ‘\0’hay còngọilà kítựNULL Lưu ý
▪ Kítự ‘a’khác vớixâu“a”.
7/2020 Cơ sở lập trình 127
Khai báo xâu
▪ Dùngmảngkítự: char a[size]; ▪ Dùng contrỏkítự: char *str; Khởi tạoxâu
▪ Dùngmảng hoặccontrỏ Vídụ
▪ char a[15] =“hello world”;
hoặc
▪ char *str = (char*) malloc (15*sizeof (char));