這是交易。我有一個大字符數組,並試圖操縱它。下面是一些代碼,我使用來測試這個想法:C指針故障
#include <stdio.h>
char r[65536],*e=r;
main() {
e+=8;
while(*e) {
*e+=1;
e+=5;
*e-=1;
e-=1;
}
*e+=1;
printf("%i",*e);
printf(" %c",e);
}
什麼它應該做的是:
- 設置爲8
- 的第一個元素之後,而目前的元素不爲零,
- 移動到下一個單元格
- 添加5〜它
- 回遷
- 減去一個。 (此重複8次,因爲同時測試將失敗時,它已經減去最後一個)
- 顯示指針
- 顯示陣列,該指針指向(希望)的內容的位置
作用:
1 Φ
,而不是
40 (
^^ 8 x 5 = 40,這就是它應該顯示的內容。
任何提示/建議/批評接受。
你幾乎可以得到它,但是當你用* e定義一個指針時,你不需要把它稱爲* e只是e,並且給你指針的內存地址。當你再次像* e + = 8一樣時,你正在解引用它,並在ASCII值char中加上8,這使得它有一些其他的字符。 – L7ColWinters 2012-01-27 14:01:10
請注意,'main'應該返回一個'int'(通常爲0)。 – 2012-01-27 14:38:23
你也應該初始化你的數組。在* e + = 8之後不能保證* e是8;' – user606723 2012-01-27 17:31:04