2

p=numbers++またはできないのはなぜp=++numbersですか?コンパイラは、「インクリメント オペランドとして左辺値が必要です」というメッセージを表示しますが、ポインターpは左の値ではありませんか?

int main(int argc, char *argv[]){
    int numbers[] = {1,2,3,4,5,6}, *p;
    p=numbers++;
    printf("%d ",*p);
    return 0;
}
4

4 に答える 4

1
于 2013-09-10T03:38:21.453 に答える
1

numbers++と同等ですnumbers = numbers + 1

ただし、numbersこれは配列であり、配列のアドレスを変更することはできません。

左辺値は「左の値」を意味しません

于 2013-09-10T03:01:29.347 に答える
0

numbersポインタではありません。この定義の配列とint numbers[] = {1,2,3,4,5,6}右辺値です。だからthe compiler shows the message: "lvalue required as increment operand"

配列とポインタの違い。ポインター - 配列とポインターの違い

于 2013-09-10T03:01:51.753 に答える