首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

怎么判断形参是变量还是常量

2012-09-16 
如何判断形参是变量还是常量RT:下面起得函数:int function( char *str ){char str1[] aaaastatic cha

如何判断形参是变量还是常量
RT:
下面起得函数:

int function( char *str )
{
  char str1[] = "aaaa";
  static char str2[] = "aaaaa";
}
length1 = &str - &str1
length2 = &str - &str2
能否通过判断 length1 跟 length2的大小, 来判断传入参数是变量还是常量?

总觉得不是很可靠

[解决办法]
没戏

首先一点就是,变量与常量只对编写源代码的程序员有区别,编译后的程序不区分变量与常量
其次,变量与常量只看你是否使用const修饰它的定义,不看放在内存的哪里,一般来说,局部变量放在栈里,全局变量和静态变量(本质上也是全局)则不是。
最后,楼主想要利用内存地址判断是否是常量,这个方法的有效性仅限于“直接写在源代码文本中的常量字符串”,因为这东西会被放在常量区,并且在默认编译选项下会被设定只读。

热点排行