SAiKETSU 发表于 2023-3-7 16:21:54

左值右值晕晕

书上描述非法左值的时候都会说他的存储位置未清晰定义,这个存储位置怎么才算清晰定义呢?
比如
char ch = 'a';
char *cp = &ch;
为什么cp的存储位置就清晰定义了,而&cp的存储位置就没清晰定义
{:10_266:}

豆嘉木 发表于 2023-3-7 16:31:47

好像不用&

狂奔的梦想 发表于 2023-3-7 18:16:19

你这是什么编程语言呢?C语言吗?
如果是C语言的话,那么cp是一个指针,这个指针在申明的时候会开辟一段内存空间,而且位置固定,所以cp的位置是清晰的,同理变量ch的位置也是清晰固定的,但是&ch是指ch这个变量的存储地址所存放的地方,这个是没有固定下来的,所以并没有清晰定义
cp的位置指的是字符‘a'的存储位置
&cp的位置,指的是变量在内存中地址的存放位置,也就是字符’a'位置的位置
cp是指针,它所存放的内容就是char型变量的位置

SAiKETSU 发表于 2023-3-7 18:48:56

狂奔的梦想 发表于 2023-3-7 18:16
你这是什么编程语言呢?C语言吗?
如果是C语言的话,那么cp是一个指针,这个指针在申明的时候会开辟一段内 ...

谢谢大佬,我懂了{:10_266:}
页: [1]
查看完整版本: 左值右值晕晕