在读《C专家编程》是有关于左值和右值的解释:
1、左值:出现在赋值符左边的符合有时称为左值,“左手边”,也就代表变量的地址,在编译的为每个变量分配一个地址(左值);
2、右值:出现在赋值符右边的符合有时称为右值,“右手边”,也就代表变量的内容,只有在运行时才知。
实例:
char a[9]="abcdefg"; c = a[i];
编译器符号表具有一个地址9980
运行步骤1:取i的值,将它与9800相加
运行步骤2:取地址(9980 + i)的内容
char *p; a=p=a; c = *(p+i);
编译器符合表具有一个地址4624
运行步骤1:取地址4624的内容,就是9980;
运行步骤2:取i的值,将它与9980相加
运行步骤2: 取(9980+i)的内容
所以使用指针访问数组元素要比使用数组名要多一步
阅读(1153) | 评论(0) | 转发(0) |