1、
&a是取a变量的内存地址,把这个地址值存入b变量逻辑上是没有问题的。
但存地址有专门的存地址的箱子的类型(int*),b是存整数的箱子类型(int)啊,所以应该进行显式(强制)类型转换,变成:
1 int a=100;
2 int b=(int)&a;
2、
在定义变量语句中的int *b和表达式中的*b确实不代表同一个意思。int *b中的*和int一起代表一种整型的指针类型,你可以将int*作为一个整体来理解,它表示一种类型。表达式中的*b才是做指针运算的,表示取出b的值所表示的地址中的值(b所指向的地址中的值)。