JavaScript is required

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”);

A.

1000

B.

1005

C.

1003

D.

Kết quả khác

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àm strstr 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.

Câu hỏi liên quan