C中如何将一个地址值赋给一个指针变量
#include<stdio.h>voidmain(){char*p=0x12ff7c;}语句把一个十六进制的地址值赋给了一个指针变量,可是编译的时候会报错,这是为什么...
#include <stdio.h>
void main()
{
char *p=0x12ff7c;
}
语句把一个十六进制的地址值赋给了一个指针变量,可是编译的时候会报错,这是为什么 展开
void main()
{
char *p=0x12ff7c;
}
语句把一个十六进制的地址值赋给了一个指针变量,可是编译的时候会报错,这是为什么 展开
7个回答
展开全部
首先你要看你已知的地址是什么类型变量的地址,然后你就定义一个和前面基类型对应的指针变量,
比如
int a;
int *p; p指向储存整形数据的空间。
p=&a;
保证p与&a为同一类型。
如果不同的话,就要进行强制转换成相同类型;常见例子为malloc函数。解释如下所示:
由于malloc生成的地址为void类型,所以将malloc生成的地址要进行强制类型转换,转换成跟p相同的类型即可,比如 int *p;
p=(int *)malloc(sizeof(int));
比如
int a;
int *p; p指向储存整形数据的空间。
p=&a;
保证p与&a为同一类型。
如果不同的话,就要进行强制转换成相同类型;常见例子为malloc函数。解释如下所示:
由于malloc生成的地址为void类型,所以将malloc生成的地址要进行强制类型转换,转换成跟p相同的类型即可,比如 int *p;
p=(int *)malloc(sizeof(int));
展开全部
指针变量不能这样赋值
给你个例子
main()
{ int a;
int *p;
p=&a;
return 0;
}
&是取地址的意思&a就是变量a的地址
或者对0x12ff7c进行强制类型转换
void main()
{
char *p=(char*)0x12ff7c;
}
但是这样用一定要非常小心,弄不好程序在运行中会出现错误
给你个例子
main()
{ int a;
int *p;
p=&a;
return 0;
}
&是取地址的意思&a就是变量a的地址
或者对0x12ff7c进行强制类型转换
void main()
{
char *p=(char*)0x12ff7c;
}
但是这样用一定要非常小心,弄不好程序在运行中会出现错误
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
,这不可把它强制类型转换成(struct
book
*),则fscanf(fp1,"不需要再对i取地址了。
如果i是一个指针,&i);%d",如果是一个变量i是一个变量还是一个指针
book
*),则fscanf(fp1,"不需要再对i取地址了。
如果i是一个指针,&i);%d",如果是一个变量i是一个变量还是一个指针
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
指针变量 合法的赋值 只有地址值。
如果填两个的话
就是地址值和空值 也就是NULL
很多人说地址值和变量值, 后者 是不对的。
如果填两个的话
就是地址值和空值 也就是NULL
很多人说地址值和变量值, 后者 是不对的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实当指针赋NULL的时候就是把地址赋给变量了,地址不过是一个数字。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询