C. %p输出地址的问题
见代码:#include<stdio.h>
int main()
{
char ch;//定义字符变量
int i;
char *p;
p=NULL;
ch='A';
for(i=0;i<65;i++)
{p++;}
printf("%p\n",ch);
printf("%p\n",p);
return 0;
}
输出:
0x41
0x41
问题:
这个时候,输入字符A。指针从NULL开始累加65次。最后%p输出地址都为0x41。那这个时候是变量ch在0x41这个地址吗? 本帖最后由 My_A 于 2019-4-5 15:11 编辑
因为NULL等于0,所以p的值为0,且类型为Char*,经过65次循环后p等于65,十六进制为41
还有ch的值为'A',在ASCII表中"A"的值为0x41
输出ch的地址应该用printf("%p",&ch)
页:
[1]