相关疑难解决方法(0)

文字字符串和函数返回值是左值还是右值?

  1. 只是想知道文字字符串是左值还是左值.其他文字(如int,float,char等)是左值还是右值?

  2. 函数的返回值是左值还是右值?

你怎么说出差异?

c rvalue lvalue

30
推荐指数
1
解决办法
1万
查看次数

直接为C指针赋值

我刚刚开始学习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)

它工作正常.

我的问题是,为什么我无法直接为指针设置文字值?我已经在线查看教程以获取指针,其中大部分都是以与第二个示例相同的方式进行.

任何帮助表示赞赏.

c pointers

24
推荐指数
2
解决办法
8万
查看次数

标签 统计

c ×2

lvalue ×1

pointers ×1

rvalue ×1