单片机c语言中可以把一个变量的值作为地址赋给指针变量吗?

假如 char data *p ;char a=30H ;我想把30H作为地址赋给p可以吗?即p=a ;
我直接写p=a ;但是赋给p的不是30H而是a的地址。求解?

这个是可以的,具体应该是p=*a还是p=&a,不太记得了。不过建议楼主做这类地址操作的时候多加注意,毕竟风险是有点。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-10
理论上是可以的,不过这样有危险,而且也没有意义。单片机是8位的,地址有限,有些还访问不了。追问

我直接赋了但是赋的不是是30H,而是a的地址。求解?

追答

p是指针,p=a这句的意思是将p指向a,也就是把a的地址付给p。

第2个回答  2012-12-10
指针变量p其实也就是个数字啊,不过30H个P 这样是危险的,因为你不知道这个地址放的是什么,也许编译器就不允许你使用。最好的话你自己调试一下。变量给地址是允许的追问

我直接赋了但是赋的不是是30H,而是a的地址。求解?

追答

额,这个a不是等于30吗,当然只是p=30H啊,不是a的地址

本回答被提问者采纳
第3个回答  2012-12-10
把a的地址赋给p,应该是: p = &a;
而你直接写p = a;和p = 0x30;一样,有风险。还可能报错之类的。追问

可是我想把a的值30H当做地址,那该怎么办?

本回答被网友采纳

c语言指针的赋值问题
在C语言中,指针的赋值是通过将变量的地址赋给指针变量来实现的。指针的基本概念 在C语言中,指针是一个变量,其特殊之处在于它存储的是其他变量的地址,而不是值本身。指针使我们能够间接地访问和修改变量的值。指针的赋值过程 当我们为指针变量赋值时,实际上是将其指向一个变量的内存地址赋给它。这...

C语言中,指针变量里存储的是地址,请问怎样把一个已知的地址值赋给...
(1)首先你要看你已知的地址是什么类型变量的地址,然后你就定义一个基类型对应的指针变量,比如 int a,*p;p=&a;保证p与a为同一类型。(2)由于malloc生成的地址为void类型,所以将malloc生成的地址要进行强制类型转换,转换成跟p相同的类型即可,比如 int *p; p=(int *)malloc(sizeof(int));...

如何在c语言中定义一个变量在一个绝对地址
C中的“变量”用标识符表示,叫“变量名”;变量名的管理有一套对编程者透明的机制,所以不能将变量定义在一个程序员主观想像的地方。但指针变量例外,因为指针变量的值是地址值,所以可以将一个具体数值强制为同类型指针再赋给指针变量,如int *p=(int *)1234567;,这就把1234567这个地址值赋给指针...

C语言里:为什么不能将int型变量直接赋值给指向int型变量的指针
所以不能直接把int型变量赋值给指针

c语言中能把指针变量赋值给指针变量嘛?
指针变量赋值给指针变量 是可以的。我想补充楼上的 1、就是这两个指针变量同时指向一个地方 内存 2、指向指针的指针的指针是二级指针。它指向指针。到看你怎么用了

C语言中能不能将一个整数赋给一个指针变量?
在某种场合,把常量赋给指针变量是可以的,例如:int a=10,p ;printf("%d",&a);在以上代码输出a的地址值之后,譬如:1244996 以上程序可以改为:int a=10,*p;p=1244996;printf("%d",*p);输出10

基于c语言,可以将一个实型变量值赋给一个指针变量
int a;int *p; p指向储存整形数据的空间。p=&a;

指针赋值
1. 指针的基本概念:在C语言中,指针是一种变量,其特殊之处在于它存储的是其他变量的地址,而不是具体的值。通过指针,我们可以间接访问到存储在内存中的某个变量。2. 指针赋值的操作:指针赋值就是将一个变量的地址赋值给指针变量。例如,如果我们有一个整型变量a,我们想通过一个指针变量来访问...

C语言中怎么将变量赋值给指针地址
int *pa;pa = &a[3]; \/\/ 把 a[3] 的地址给 *pa printf("*pa=%d\\n",*pa);printf("a[3]=%d\\n",a[3]);pa=b[2]; \/\/ b[2] 的数据给 *pa printf("*pa=%d\\n",*pa);printf("a[3]=%d\\n",a[3]); \/\/ a[3] 数据 变 *pa } pa 里 只能存一个数。

C语言 将地址赋值给指针变量
取决于p的类型。struct stu_type p=&stu1;这里的*是和类型一起的,用来定义,而非初始化。等效于 struct stu_type p;p=&stu1;至于去掉,如果写成struct stu_type p=&stu1;绝对会报错。不存在你说的去掉和加上结果不变。

相似回答