int main() {
char arr[10] = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j' };
char *d = arr;
char value1 = *(((char*)d)++);//这里会报错
d = arr;
char value2 = *((char*)d++);
printf("value1: %c, value2: %c\n", value1, value2);
return 0;
}
gcc test.c -o test
test.c: In function ‘main’:
test.c:8:31: error: lvalue required as increment operand
8 | char value1 = *(((char*)d)++);
|
可能我对编译和 c 这块不是很懂,这个左值不是 c++的概念吗,怎么我这么编译还能报错啊?
然后就是这个报错信息没看懂,((char*)d)我这样写的,所以就是它就是一个左值了?
求各位大佬解答一下。