如何取指针变量的地址?

现在的情况是,uchar *L=LOW[0];我要取的是指针变量L的地址,不是指针变量中保存的LOW[0]的地址,我在C51中用&L,取出来的不知道是什么值,跑飞了,应该怎么做?

  取任何变量的地址,只需要使用取地址运算符——&即可。比如

int i;
char *p;   //定义一个字符指针
struct test o_o;

  都可以通过&取地址运算符操作。

int *pi = &i;
char **px = &p; //保存指针变量的地址记得使用 ä¸¤ä¸ª*号表明是一个指向指针的指针
struct test *ps = &o_o;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-26
这样做应该是可以的,&L。 你取出来的地址应该用%p输出。如果要把这个地址赋给变量的话,变量得是长整形。追问

意思是,即使指针变量是uchar型的,他自身的地址是16位而不是uchar的8位?

追答

是啊,任何地址都是长整形的

追问

干的,难怪我一直错,教科书上没重点提到,

追答

客气了,有问题还可以问我,大家一起讨论。

本回答被提问者采纳
第2个回答  2013-10-26
首先,要在L中存LOW[0]的地址应该这样写,uchar *L = LOW,或者 uchar *L = &LOW[0],其次取L的地址是&L没错,跑飞的话,具体没有代码就不知道什么问题了,不过注意的是&L是16位的,要用int存储
相似回答