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

常量能取地址?进来看看···该怎么解决

2012-05-27 
常量能取地址?进来看看在论坛看到这样的:,&运算符只能作用于变量,不能作用于常量。这个对吗?还有,请解释下

常量能取地址?进来看看···
在论坛看到这样的:,&运算符只能作用于变量,不能作用于常量。
这个对吗?
还有,请解释下面两段代码
(1)#include<stdio.h>
void main()

  const int i=12; //常量
const int * j=&i; 
printf("the adress is :%d/n",j);
}
(2)#include<stdio.h>
#define i 12 //常量

void main()

  
printf("the adress is :%d/n",&i);
}

都是常量,第一个怎么有地址,第二个怎么没有???

[解决办法]
宏替换是预编译的操作,为什么会有地址呢?你第2个实际上是printf("the adress is :%d/n",&12);

[解决办法]
咬文嚼字的话,应该是&运算符只能作用于变量,不能作用于字面量
字面量是直接量,数字的话就是 1 2 3 等等,字符串就是 abc def 等等
常量和变量在&运算符上是一样的,他们都有个代表的地址

热点排行