C中如何将一个地址值赋给一个指针变量

#include<stdio.h>voidmain(){char*p=0x12ff7c;}语句把一个十六进制的地址值赋给了一个指针变量,可是编译的时候会报错,这是为什么... #include <stdio.h>

void main()
{
char *p=0x12ff7c;
}
语句把一个十六进制的地址值赋给了一个指针变量,可是编译的时候会报错,这是为什么
展开
 我来答
慎重还可靠灬宝贝f
2015-07-09 · TA获得超过12.9万个赞
知道大有可为答主
回答量:1.9万
采纳率:52%
帮助的人:2616万
展开全部
首先你要看你已知的地址是什么类型变量的地址,然后你就定义一个和前面基类型对应的指针变量,
比如
int a;
int *p; p指向储存整形数据的空间。
p=&a;
保证p与&a为同一类型。
如果不同的话,就要进行强制转换成相同类型;常见例子为malloc函数。解释如下所示:
由于malloc生成的地址为void类型,所以将malloc生成的地址要进行强制类型转换,转换成跟p相同的类型即可,比如 int *p;
p=(int *)malloc(sizeof(int));
千年前的惊叹号
2009-01-17 · TA获得超过276个赞
知道小有建树答主
回答量:161
采纳率:0%
帮助的人:80.7万
展开全部
指针变量不能这样赋值
给你个例子
main()
{ int a;
int *p;
p=&a;
return 0;
}
&是取地址的意思&a就是变量a的地址
或者对0x12ff7c进行强制类型转换
void main()
{
char *p=(char*)0x12ff7c;
}
但是这样用一定要非常小心,弄不好程序在运行中会出现错误
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
长老上头369
2019-11-24 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:29%
帮助的人:1137万
展开全部
,这不可把它强制类型转换成(struct
book
*),则fscanf(fp1,"不需要再对i取地址了。
如果i是一个指针,&i);%d",如果是一个变量i是一个变量还是一个指针
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
year医海无边
2017-01-14 · TA获得超过1.5万个赞
知道小有建树答主
回答量:9169
采纳率:66%
帮助的人:1127万
展开全部
指针变量 合法的赋值 只有地址值。
如果填两个的话
就是地址值和空值 也就是NULL

很多人说地址值和变量值, 后者 是不对的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
matlab2000
2015-05-16 · TA获得超过2323个赞
知道大有可为答主
回答量:1678
采纳率:100%
帮助的人:1053万
展开全部
其实当指针赋NULL的时候就是把地址赋给变量了,地址不过是一个数字。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式