----------------解决方案--------------------------------------------------------
int a[]={1,2,3,4,5,6},*p=a;
printf("%c",*(++p));
这里出来的是2.又不是3.
----------------解决方案--------------------------------------------------------
#include "stdio.h"
main()
{ int a[]={1,2,3,4,5,6},*p=a;
p="abcdefg";
printf("%c",*(++p));
}
int 与 char 的字节问题!
----------------解决方案--------------------------------------------------------
楼主定义的指针p是int型,++p指针地址加上sizeof(int),你用的编译器算出来sizeof(int)为2,所以p指向C,你又打印%c,自然就只取指针指向的数的8位。你试试打印%d看看
----------------解决方案--------------------------------------------------------
楼主定义的指针p是int型,++p指针地址加上sizeof(int),你用的编译器算出来sizeof(int)为2,所以p指向C,你又打印%c,自然就只取指针指向的数的8位。你试试打印%d看看
楼主在TC下出来一个'c'
若在VC下会出来一个'e'
我已经试过了。young好样的,正解。
[此贴子已经被作者于2006-6-19 18:24:37编辑过]
----------------解决方案--------------------------------------------------------