首先你要看你已知的地址是什么类型变量的地址,然后你就定义一个和前面基类型对应的指针变量,
比如
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;
}
但是这样用一定要非常小心,弄不好程序在运行中会出现错误
,这不可把它强制类型转换成(struct
book
*),则fscanf(fp1,"不需要再对i取地址了。
如果i是一个指针,&i);%d",如果是一个变量i是一个变量还是一个指针
指针变量 合法的赋值 只有地址值。
如果填两个的话
就是地址值和空值 也就是NULL
很多人说地址值和变量值, 后者 是不对的。
其实当指针赋NULL的时候就是把地址赋给变量了,地址不过是一个数字。