#include <stdio.h> 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)我这样写的,所以就是它就是一个左值了?
求各位大佬解答一下。
