c中左值右值怎么回事?
#include "stdio.h"
int sort(int* arr)
{
int* arr1 = arr;
int* arr2 = arr;
while(arr1!=NULL)
{
while(arr2!=NULL)
{
if(*arr1>*arr2)
{
int temp;
temp = *arr1
*arr1 = *arr2;
*arr2 = temp;
}
arr2++;
}
arr1++;
}
}
int main(int argc,char* argv){
int arr[] = {4,2,6,5,8,9,12,32,54,12,};
int i;
int j;
int c;
printf("The order before sort:\n");
for(i = 0;i<sizeof(arr)/sizeof(arr[0]);i++)
{
printf("%d\t",arr[i]);
}
printf("\n");
sort(arr);
/*for(i = 0;i<sizeof(arr)/sizeof(arr[0]);i++)
{
for( j= 0;j<sizeof(arr)/sizeof(arr[0]);j++)
{
if(arr[i]>arr[j])
{
int temp;
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}*/
printf("The order after sort:\n");
for( j= 0;j<sizeof(arr)/sizeof(arr[0]);j++)
{
printf("%d\t",arr[j]);
}
printf("\n");
c =getchar();
}
1>------ 已启动生成: 项目: BiSearch, 配置: Debug Win32 ------
1>正在编译...
1>main.c
1>c:\documents and settings\zsli\my documents\visual studio 2005\projects\bisearch\main.c(15) : error C2297: '*' : illegal, right operand has type 'int *'
1>生成日志保存在“file://c:\Documents and Settings\zsli\My Documents\Visual Studio 2005\Projects\BiSearch\Debug\BuildLog.htm”
1>BiSearch - 1 个错误,0 个警告
========== 生成: 0 已成功, 1 已失败, 0 最新, 0 已跳过 ==========
请问上边的程序有什么问题,c中的左值右值是怎么回事?