Nếu địa chỉ của S là 1000, thì giá trị của p là bao nhiêu: char S[20] = ”aaaaaea”; char * p = strstr(S, ”e”);
Trả lời:
Đáp án đúng: B
Câu hỏi này kiểm tra kiến thức về con trỏ và hàm strstr
trong C.
char S[20] = "aaaaaea";
Khai báo một mảng ký tự (chuỗi) S có kích thước 20, và khởi tạo nó với chuỗi "aaaaaea". Địa chỉ của S (tức là S[0]) là 1000.char * p = strstr(S, "e");
Hàmstrstr
tìm kiếm chuỗi "e" trong chuỗi S. Nếu tìm thấy, nó trả về một con trỏ đến vị trí đầu tiên của chuỗi "e" trong S. Nếu không tìm thấy, nó trả vềNULL
.
Trong trường hợp này, strstr(S, "e")
sẽ tìm thấy ký tự 'e' đầu tiên tại vị trí S[5] (vì chuỗi S là "aaaaaea"). Do đó, con trỏ p sẽ trỏ đến S[5].
Vì địa chỉ của S (S[0]) là 1000, và mỗi ký tự char chiếm 1 byte, thì địa chỉ của S[5] sẽ là 1000 + 5 = 1005.
Vậy, giá trị của p là 1005.