结论:数组名不是常量指针,更不是指向数组首地址的常量指针。 设问:常量指针能为左值,那常量呢? 1constinta =3;2a = a; 运行结果:报错——“a”不能给常量赋值 and 表达式必须是可修改的左值。 结论:常量指针不是一个常量。 设问:数组名是一个常量吗? printf("3的地址=%p,arr的地址=%p\n", &3, &ar...
同理,在c++自动类型推导的时候(包括template, auto)推导数组和指针的时候都完全不一样,推导数组的时候,会保留数组的[],而不会转化为指针。感觉上一样是因为这一切其实都只是编译器在做数组操作的时候转化成了数组首地址,[]只是变成了指针寻址,事实上二者其实用的时候汇编可能一样,但是未编译状态,编译器就会使用不...