关于const char * a ,表示*a的值不能改变。我不理解的是*a>>1;是在哪里改变的。
我定义一个const char * a ,const 修饰表示*a的值不能改变。赋值给*a肯定是错误的。例*a = 0x11;是错误的。我不理解的是*a>>1;是在哪里改变的。不是在原内存改变的?不是不能改变*a的值吗?请大神解疑。谢谢。
void fun(const char *a )
{
printf("a address is %x\n",a);
printf("a to is %x\n",*a);
printf("a>>1 to is = %x\n",*a>>1);
printf("a address is %x\n",a);
printf("a to is %x\n",*a);
}
int main()
{
char a []={0x8};
fun(a);
}
[ 本帖最后由 向前跑 于 2014-1-3 12:59 编辑 ]