在C语言中,常量与变量有何区别呢?字符常量与字符串常量有何区别呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在C语言中,常量与变量有何区别呢?字符常量与字符串常量有何区别呢?相关的知识,希望对你有一定的参考价值。

常量就是固定不变的量,不能通过函数进行修改的变量;变量是可以通过赋值,函数等手段进行修改的一个变量。

字符串常量:char *a = "hello world";首先,操作系统在编译器规划内存方案中的的文字常量区分配一段内存,存储"hello world"字符串,然后在栈区分配一个内存,存储"hello world"字符串所在内存的首地址,字符串常量一旦分配是不允许修改的。
字符常量:char b[] = "hello world";操作系统在编译器规划的内存方案中的栈区分配一段连续内存空间(12个字节),存储"hello world"字符串,字符串常量就相当于字符的一个数组,是可以修改的。
参考技术A 常量就是不变的量。变量顾名思义就是可以变化的,这个变量是一个存储空间,里面可以放1,2,3等等,但是常量就不行了,你一开始在这个存储空间里放了1就不能再放2了,变量或者常量的名字是指向这个存储空间的地址。

字符常量是一个字符,而字符串 顾名思义是一串字符。后面都有常量这个修饰,也就是不可以变化的字符常量或者字符串常量。
参考技术B 常量的值不能改变,变量可以。
字符是一个字,字符串是一个字符数组。
参考技术C 好难。````` 参考技术D 变量可以进行赋值,常量的值是固定的吧。。我也不是太清楚

C语言 变量 被赋值后如何转化成 常量???

你是不是想做这样的事情:
int n=5;
int arr[n];

这是不可能的,初学者包括我当年也想这样干,但C语言不允许。
类似这样的问题,解决的方法,一是估计你可能需要的最大空间,比喻说,你估计可能需要最多1000个数组,那就以下子分配这么多的空间:
#define MaxVal 1000
int arr[MaxVal];
然后再配个一个变量纪录实际需要的个数。
另一种代替方法是动态分配,用malloc函数,关于这个自己查查资料吧
参考技术A c中没有常量变量,变量也不可能转化成常量。

变量被赋值以后,变量的内存空间所存储的内容发生改变。
当调用变量的时候,所使用的变量的值接成了被赋予的值了。
参考技术B 如果你想定义常量那么需要在外面定义一个静态的用#define定义。而变量只需要随你的类型定义就好。例如int啦 float啦只类的。
至于变量怎么转化成常量貌似还真不太明白。
参考技术C :……用const int x;就是变成了一个常量

以上是关于在C语言中,常量与变量有何区别呢?字符常量与字符串常量有何区别呢?的主要内容,如果未能解决你的问题,请参考以下文章

c语言,常量与变量

常变量和变量,常量的区别与联系,各自的特点是啥

C语言-字符与字符串常量及变量

常量和常变量有啥区别没

常量与变量的区别

如何理解C语言常量和变量