//if the following code works
char *ptr=a+12;
//why doesnt this work
char *(ptr=a+12);
Q
指針算術
2
A
回答
2
因爲(ptr=a+12)
不是變量的有效名稱。你想要達到什麼目的?
0
char * ptr;
聲明一個變量,=a+12
給它一個值。你在做什麼沒有意義,變量必須存在才能賦值。你想達到什麼目的?
這將是有效的。
char * foo;
char * ptr = (foo = a + 12);
0
因爲你聲明瞭一個指針的整個表達式,這是沒有意義的。指針必須是一個變量。
2
因爲char *ptr=a+12;
是一個聲明與初始化和char *(ptr=a+12);
是......好吧,沒什麼。
但這會奏效。
char* ptr;
ptr = a+12;
char x = *(ptr = a+12);
0
()
具有更高優先級。因此,表達式首先評估並且不是有效的lvalue
分配給。
0
char* ptr = a + 12;
聲明並定義了一個指向char的指針,指向a
之後的12個字符。
char* (ptr = a + 12);
嘗試將值(a + 12
)賦值給指針ptr
,然後將其解引用以生成值。但Type value
是無效語法(如int 0;
或char 'x';
無效),並且ptr
從未被聲明/定義。
總之,這是完全沒有意義的。
相關問題
- 1. 指針算術
- 2. C++指針算術
- 3. C指針算術
- 4. 算術指針和fstream C++
- 5. 指針算術錯誤(OpenCL)
- 6. Android NDK指針算術
- 7. C++指針算術奇怪
- 8. 指針算術問題
- 9. C++算術具有指針
- 10. 指針算術問題
- 11. 空指針算術錯誤
- 12. python ctypes指針算術
- 13. nullptr和指針算術
- 14. 結構和指針算術
- 15. 指針算術幫助
- 16. 指針算術符號
- 17. 指針算術的澄清
- 18. void *與char *指針算術
- 19. 釋放指針算術
- 20. 指針指針之類的指針之類的算術
- 21. 使用指針算術混淆
- 22. 二維數組的C指針算術
- 23. 指針算術 - 相同的表達式?
- 24. 指針算術不起作用
- 25. 數組指針算術問題
- 26. 用於數組的C指針算術
- 27. 指針算術和可移植性
- 28. 指針算術錯誤輸出
- 29. uitextfield需要算術或指針類型。
- 30. C編程和argv(指針算術)
學會接受答案 – 2011-03-09 11:16:55