为什么对常量对象取地址是底层const?
如:
const int i=10;
auto a=&i;
i既然是被常量修饰的,那么它的值和地址应该是不能变的,那么&i就不能变,既然&i不能变,那么a所指的对象就不能变,不仅仅是值还有地址也不能变。所以对常量对象取地址不应该是顶层底层const都有吗?像这样const int *cosnt a=&i;才符合。难道是因为这里auto忽略掉了顶层的const,所以才说只有底层const?
为什么对常量对象取地址是底层const?
如:
const int i=10;
auto a=&i;
i既然是被常量修饰的,那么它的值和地址应该是不能变的,那么&i就不能变,既然&i不能变,那么a所指的对象就不能变,不仅仅是值还有地址也不能变。所以对常量对象取地址不应该是顶层底层const都有吗?像这样const int *cosnt a=&i;才符合。难道是因为这里auto忽略掉了顶层的const,所以才说只有底层const?
收起
对,auto会忽略掉顶层const
https://qa.1r1g.com/sf/ask/3226431841/
报告相同问题?