DAVID J. Malan: Hãy viết một chương trình nhắc nhở người sử dụng cho một chuỗi và sau đó tiến hành in chuỗi nhân vật cho một ký tự trên mỗi dòng. Bây giờ trong quá khứ, chúng tôi đã làm như vậy có lẽ với ký hiệu khung vuông, xử lý có hiệu quả một chuỗi là một mảng các ký tự. Nhưng lần này, chúng ta hãy thay vì điều trị một chuỗi cho những gì nó thực sự là, một con trỏ hoặc một địa chỉ. Cụ thể, địa chỉ của một nhân vật, thực sự là địa chỉ của ký tự đầu tiên, trong một chuỗi các nhân vật mà chúng ta biết chung như là một chuỗi. Hãy đầu tiên khai báo một chuỗi cho những gì nó thực sự là, char *. Và chúng tôi sẽ gọi nó s. Và sau đó gán cho nó trở lại giá trị có được chuỗi. Chúng ta hãy tiếp theo làm một số kiểm tra lỗi. Nếu s là vô giá trị, chúng ta hãy trở lại ngay lập tức để chúng tôi không vô tình tới đích mà con trỏ null. Tiếp theo, hãy lặp qua nhân vật trong s như sau. Cho int, tôi được 0. n bằng với chiều dài chuỗi s. Làm điều này để khi i nhỏ hơn n. Và mỗi lần lặp, tăng i. Và những gì chúng ta muốn làm trên mỗi lần lặp? Bây giờ hãy in ra trên mỗi lần lặp một nhân vật duy nhất theo sau là một dòng mới. Vâng, những gì nhân vật làm chúng tôi muốn in? Tôi đề nghị chúng tôi đi đến địa chỉ mà bằng tổng của s cộng với tôi. Bây giờ, tại sao biểu thức? Vâng, nhớ lại rằng được lưu trữ trong s là địa chỉ của ký tự đầu tiên trong chuỗi của chúng tôi, s. Trong khi đó, tôi đang được tăng lên trên mỗi lần lặp để nó bắt đầu từ 0, sau đó đi đến 1, sau đó đi vào 2. Vì vậy, nói cách khác, s cộng với tôi một cách hiệu quả đại diện cho địa chỉ của nhân vật thứ i trong s. Vì vậy, nếu chúng ta đi đến địa chỉ đó bằng cách nhà điều hành *, chúng tôi sẽ đi đến nhân vật thứ i trong chuỗi. Và đó là giá trị mà sẽ được thay thế cho giữ chỗ của chúng tôi, phần trăm C. Hãy xác nhận càng nhiều. Hãy tiết kiệm, biên dịch, và chạy chương trình này. Làm cho con trỏ, con trỏ dấu chấm dấu gạch chéo. Và bây giờ tôi sẽ cho nó một chuỗi như hello. Nhập. Và quả thật, tôi thấy H-E-L-L-O, với mỗi char trên một dòng riêng.