永发信息网

c语言申请只读变量的方法

答案:3  悬赏:70  手机版
解决时间 2021-04-08 03:17
  • 提问者网友:杀手的诗
  • 2021-04-07 11:12
c语言申请只读变量的方法
最佳答案
  • 五星知识达人网友:你哪知我潦倒为你
  • 2021-04-07 11:41
#include

int main(void){
int x;
scanf("%d",&x);
const int y = (const int)x;
printf("%d",y);
//y = 12;//加上这句话会报错误,错误: 向只读变量‘y’赋值

return 0;
}
你做一个强制类型转换,就可以实现了追问但你这个是C++的编译环境才能通过,C语言的环境不通过追答你用的什么编译器?我写的就是c程序,也是在c的环境下编译的,完全可以通过,你是不是代码和我哪里不同或者编译器的问题?追问CodeWarrior,编写飞思卡尔芯片用的编译器追答我看看你的代码,常量你要在定义的时候就去做初始化,所以我才会在获取值以后才定义的常量并且初始化
全部回答
  • 1楼网友:罪歌
  • 2021-04-07 13:20
加const固定
比如变量a定义
const int a=10;追问但初始化之后能创建新变量吗,C语言不是C++追答没明白你的意思,初始化后,值就不能修改了
运行时创建变量?那就用malloc建立追问我的值要根据程序刚运行时的情况去定的,但之后就要使他固定下来。因为我发现我的程序受硬件的高频信号影响很大,所以要固定他
  • 2楼网友:不如潦草
  • 2021-04-07 12:22
const 的用法追问C语言能申请新的变量吗?不是在运行程序前就要创建所有变量吗?追答当然能申请新变量,运行前申请的只有几种类型的变量例如 常量,全局变量,函数静态变量
如果要动态使用可以malloc(size)例如 32位系统中
int* p = (int*)malloc(4);追问用malloc申请空间后然后怎么使它变为只读变量追答动态申请的都是可读写的内存,否则怎么初始化和释放呀
int *p2;
const int *p1 =p2=(int*)malloc(4);
*p2=4;
free(p2);
上面的使用p1只能读该内存,但p2可以写和释放,用P1写会直接报错
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯