int i=5;const int *n=&i;cout<<*n;这样写就不会错了 对一个数值取地址是不允许的 int i = 5;i--;const int *n = &i;cout << *n;这样就对了 只能对变量取地址 &是取地址符号 飘无踪:cout << *n中的星号是对n取值 不能对表达式取地址 &是取地址的意思 因为n是一个指针 功能和你那个程序是一样的 ||| cout<<*n中的星号是干什么用的 ||| const int *n=&(i-1); 不能这样写 ||| &(i-1)是错的 所以*n就是该指针批向的位置的值 是一个数 (i-1)为4 但是(i-1)的地址是什么