我有一个指向char的char指针:
char *a = 'A';
Run Code Online (Sandbox Code Playgroud)
而做一点点&:
*a & 0x11
Run Code Online (Sandbox Code Playgroud)
我收到编译错误.这个错误的原因是什么?
a 是指向内存位置65处的字符的变量.操作系统通常不允许访问此类地址并为您提供分段违规.
如果你声明a不是指针,那么它的工作原理.
char a = 'A';
char b = a & 0x11;
printf ("%x %x\n", a, b);
Run Code Online (Sandbox Code Playgroud)
但结果取决于签名char和使用的字符集.