只是一個簡單的問題。有人能澄清這一個困惑我有一個C字符串,數組的指針與
我可以寫
char string[] = "Hello world";
char *p = string;
printf("%s", p);
而且它打印Hello world
作爲輸出。但指針在這裏工作如何?
在陣列中的每個點有一個單獨的存儲器位置,是嗎?所以字符串數組長12個,佔用12個內存空間。我認爲一個指針只能指向一個內存位置,而不是12.指針p如何實現這一點?
正常的數組和指針,如果你想擴展你做* P ++,因爲你要通過每一個存儲位置並打印其值的數組。爲什麼你必須在那裏遍歷數組1,但這裏它只是指向整個事物?
它只是在我看來,像一個(INT數組)你遞增指針,因爲每個指針只能指向一個內存位置,但字符數組它能夠以某種方式指向所有的人。
同意。並且循環失敗,因爲p正在增加兩次。只加1,3和6. – danh 2012-04-09 00:24:15
哦。非常感謝,沒有比這更簡單的了。我假設雖然上面的例子是使用指針打印字符串的一個無用的例子,但它也有實際用途,就像普通的帶有整數的指針一樣? – 2012-04-09 00:25:36
謝謝@danh,我一看到它就發佈了,哈哈。哎呦。 – 2012-04-09 00:26:05