黑马程序员技术交流社区
标题:
关于数组指针问题
[打印本页]
作者:
白0702
时间:
2015-6-9 22:09
标题:
关于数组指针问题
#include <stdio.h>
int main(int argc, const char * argv[])
{
char a[5]={'a','b','c','d','e'};
int *p=&a;
printf("%c,%c\n",*p,*(p+1));
return 0;
}
为什么打印输出结果是a,e;应该死a,b才对的,求解。
作者:
Theshy
时间:
2015-6-9 22:49
改为
int *p = a;
复制代码
作者:
晗修
时间:
2015-6-10 01:00
p=&a
p+1会移动到&a[0]+sizeof(a[5])处
作者:
白0702
时间:
2015-6-10 08:17
晗修 发表于 2015-6-10 01:00
p=&a
p+1会移动到&a[0]+sizeof(a[5])处
看了老师讲的视频明白了,指针也分数据类型的,要与后面定义的数据类型相同,把int *p=&a,改为char *p=&a,就可以了,谢谢1
作者:
白0702
时间:
2015-6-10 08:19
Theshy 发表于 2015-6-9 22:49
改为
现在明白了,不是你说的那个问题,是指针的类型必须与定义的类型要一致,把int *p=&a,改为char *p=&a就对了,谢谢!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2