我刚刚开始学习C语言,我一直在使用MinGW for Windows运行一些简单的程序,以了解指针是如何工作的.我try 了以下方法:
#include <stdio.h>
int main(){
int *ptr;
*ptr = 20;
printf("%d", *ptr);
return 0;
}
它编译正确,但当我运行可执行文件时,它不起作用——值没有打印到命令行,相反,我会收到一条错误消息,上面写着.exe文件已停止工作.
但是,当我try 将值存储在int变量中并将*ptr分配给该变量的内存地址时,如下所示:
#include <stdio.h>
int main(){
int *ptr;
int q = 50;
ptr = &q;
printf("%d", *ptr);
return 0;
}
它工作得很好.
我的问题是,为什么我不能直接设置指针的文字值?我在网上看过教程中的指针,其中大多数都是按照第二个示例的方式来做的.
如有任何帮助,我们将不胜感激.