读书人

常量能取地址?进来看看amp;#183;amp;#183;amp;

发布时间: 2012-05-27 05:42:30 作者: rapoo

常量能取地址?进来看看···
在论坛看到这样的:,&运算符只能作用于变量,不能作用于常量。
这个对吗?
还有,请解释下面两段代码
(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 等等
常量和变量在&运算符上是一样的,他们都有个代表的地址

读书人网 >C语言

热点推荐