只是想知道文字字符串是左值还是左值.其他文字(如int,float,char等)是左值还是右值?
函数的返回值是左值还是右值?
你怎么说出差异?
我刚刚开始学习C,我一直在运行一些简单的程序,使用MinGW for Windows来理解指针是如何工作的.我尝试了以下方法:
#include <stdio.h>
int main(){
int *ptr;
*ptr = 20;
printf("%d", *ptr);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
正确编译但当我运行可执行文件时它不起作用 - 该值不会打印到命令行,而是我收到一条错误消息,指出.exe文件已停止工作.
但是,当我尝试将值存储在int变量中并将*ptr分配给该变量的内存地址时,如下所示:
#include <stdio.h>
int main(){
int *ptr;
int q = 50;
ptr = &q;
printf("%d", *ptr);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它工作正常.
我的问题是,为什么我无法直接为指针设置文字值?我已经在线查看教程以获取指针,其中大部分都是以与第二个示例相同的方式进行.
任何帮助表示赞赏.