What does this code do?

4 phương ánCó giải thích
Đề bài
char names[10][31];
gets(names[0]);

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở
Đáp án đúng: "Takes a line of input into names[0]". Khai báo names là mảng hai chiều gồm 10 hàng, mỗi hàng 31 ô ký tự, nên names[0] là hàng đầu tiên và khi dùng trong biểu thức nó suy biến thành con trỏ tới ký tự đầu của hàng ấy. Hàm gets đọc một dòng từ dòng nhập chuẩn, bỏ ký tự xuống dòng rồi đặt dấu kết thúc chuỗi, nên nội dung người dùng nhập nằm trong hàng đầu. Mô tả "Takes input into all 10 strings" cần một vòng lặp gọi mười lần, còn một lời gọi chỉ ghi vào đúng hàng được truyền. Mô tả "Fails to compile" không đúng về cú pháp: dòng mã hợp lệ và kiểu đối số khớp, dù phải biết rằng gets đã bị loại khỏi chuẩn từ bản năm 2011 vì không chặn được tràn khi dòng nhập dài hơn 30 ký tự. Mô tả "Only stores 1 character" lẫn chỉ số hàng với số ký tự: số 0 là chỉ số hàng, còn mỗi hàng chứa được tới 30 ký tự cùng dấu kết thúc.

Cùng phần 8

Xuất hiện trong 1 bộ đề