共计 416 个字符,预计需要花费 2 分钟才能阅读完成。
#include
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: %cn", 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)
我这样写的,所以就是它就是一个左值了?
求各位大佬解答一下。
正文完