對於以下程序中的printf()
語句,我得到錯誤" lvalue required as increment operand|"
。爲什麼* list ++或*(list ++)爲列表[4]工作,但對指定列表值的指針工作正常?
#include<stdio.h>
int main(void)
{
int list[4]={12,22,32,42};
printf("The result of *list++ is %d",*list++);
printf("\nThe result of *(list++) is %d",*(list++));
return 0;
}
但在下面的程序*myptr++
和*(myptr++)
作品罰款其被分配的list
基地址的指針myptr
。 Ideone Link
#include<stdio.h>
int main(void)
{
int list[4]={12,22,32,42},*myptr;
myptr=list;
printf("The result of *myptr++ is %d",*myptr++);
myptr=list;
printf("\nThe result of *(myptr++) is %d",*(myptr++));
}
爲什麼會出現兩者之間的差異是什麼?如何解釋呢?這個問題冒出我發現通過以下問題將會發布後幾分鐘back.Look爲H2CO3
的回答。
What is the difference between *myptr++ and *(myptr++) in C
因爲數組和指針是不一樣的。 – 2013-04-28 12:16:14
@AlokSave我們在同一時刻發佈!整齊。 – 2013-04-28 12:16:42
@AlokSave首次與Alok Save.I進行任何溝通,只在飛機上看到他的照片。 – 2013-04-28 12:18:57