Hix,cho mình hỏi "\5\3\8" trong đoạn code dưới có nghĩa là gì vậy? Mình search hoài không ra, nhớ là từng đọc thấy ở forum mình rùi mà tìm lại hoài chả thấy :(.
C++ Code:
//What does the program print ? Please write an equivalent getValue function. int t[]={1,2,3}; int getValue(int i) { return "\5\3\8"(t[i]); } void main() { printf("%d".getValue(2)); }
Đã được chỉnh sửa lần cuối bởi beautifulsoul84hung : 29-08-2011 lúc 05:53 PM.
Cậu ý hỏi rõ ràng mà, hỏi về cái "\5\3\8"
cho mình hỏi "\5\3\8" trong đoạn code dưới có nghĩa là gì vậy?
Votichsu có thể giải thích luôn cái trên cho tớ đc ko ?"\5\3\8"[t[i]]
"\5\3\8" là một chuỗi gồm 3 ký tự trị số 5, 3 và 8. Ký tự '\' dùng để nói rằng đây là ký tự có trị như trên chứ không phải ký tự '5', '3', '8' (trị 53, 41, 56)
[] là phép tính lấy phần tử. Như vậy "\5\3\8"[t[i]] sẽ có kết quả là phần tử thứ t[i] của chuỗi.
Kết quả của getValue(2) là crash. (t[2] == 3 => tràn chuỗi)
Đại khái lý thuyết là vậy. Tôi chưa tính nên không chắc có nhầm chỗ nào.
Phụ thêm:
Nhìn kỹ cái đề bài xem: return "\5\3\8"(t[i]); trong lập trình C có nghĩa là gì vậy?