What is output? #include
Trả lời:
Đáp án đúng: A
Đoạn chương trình C++ này thực hiện việc hoán đổi hai chuỗi thông qua hàm `swap`. Tuy nhiên, cần lưu ý rằng trong C++, khi truyền con trỏ vào một hàm và thực hiện hoán đổi giá trị của con trỏ đó, sự thay đổi này chỉ ảnh hưởng đến phạm vi bên trong hàm `swap`. Do đó, giá trị của `pstr[0]` và `pstr[1]` trong hàm `main` không thay đổi.
Giải thích chi tiết:
1. `char *pstr[2] = {"LAPTRINHC++", ".NET"};`: Khai báo một mảng `pstr` gồm 2 con trỏ kiểu `char`, mỗi con trỏ trỏ đến một chuỗi ký tự hằng.
2. `swap(pstr[0], pstr[1]);`: Gọi hàm `swap` để hoán đổi giá trị của `pstr[0]` và `pstr[1]`. Trong hàm `swap`, các con trỏ `t1` và `t2` trỏ lần lượt đến `pstr[0]` và `pstr[1]`. Việc hoán đổi `t1` và `t2` chỉ thay đổi giá trị của chúng trong hàm `swap`, không ảnh hưởng đến `pstr[0]` và `pstr[1]` trong `main`.
3. `printf("%s%s", pstr[0], pstr[1]);`: In ra màn hình nội dung mà `pstr[0]` và `pstr[1]` trỏ tới. Vì `pstr[0]` vẫn trỏ đến "LAPTRINHC++" và `pstr[1]` vẫn trỏ đến ".NET", kết quả in ra sẽ là "LAPTRINHC++.NET".
Do đó, đáp án đúng là A. LAPTRINHC++.NET