新手求助printf问题

sunnyxiaohui 2007-05-10 09:42:43
char *p;
char q[100]="hello world";
p=q[0];
printf(p);

请问输出结果会是什么哦?不甚感激!!!
...全文
444 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
likexin 2007-05-26
  • 打赏
  • 举报
回复
如果不想上边说的那即使你用的编译器编译通过,也是把Q[0]的数值做为地址 很危险
milksea 2007-05-24
  • 打赏
  • 举报
回复
当然会出错。参看xlbdan的回答。

这里
p=q[0];
一句是错的,把一个字符q[0]赋给一个指针,是错误的。正确的赋值方法是
p = &q[0];

p = q; /* 上面那句的简写方式 */
lidongri 2007-05-24
  • 打赏
  • 举报
回复
char *p;
char q[100]="hello world";
p=q[0];
-----------------------------------------
没有分配空间
hpulee 2007-05-24
  • 打赏
  • 举报
回复
char *p;
int i;
char q[100]="hello world";
p=q;
for(i=0;i<15;i++)
printf("%c",*p++);
miaoshengwu 2007-05-22
  • 打赏
  • 举报
回复
char *p;
char q[100]="hello world";
p=q[0];
printf(p);
================================
p是指针,虽然传给它的是q[0],但p指向的是q[100]的首地址,
输出的时候,没遇到\0,所以就一直往下输,直到遇到hello world后面的\0才结束输出
xinfeiniao 2007-05-22
  • 打赏
  • 举报
回复
h
niewucai 2007-05-18
  • 打赏
  • 举报
回复
怎么会输出hello world 呢,明明只是第一个字符。应该只输出"h"
yuzhiyu 2007-05-14
  • 打赏
  • 举报
回复
如果象二楼说的那样改成这样:
char *p;
char q[100]="hello world";
p=q[0];
printf(“%\n",*p);
而且第三行根本就过不去啊。还是流浪剑客比较强。呵呵
jackycheng86 2007-05-13
  • 打赏
  • 举报
回复
有人给你解决了
我就不说了
哈哈
新手吧加油哦
实达诚实 2007-05-11
  • 打赏
  • 举报
回复
H
cxy_libaitian 2007-05-11
  • 打赏
  • 举报
回复
dddddddddddddddddddddddd
lidongri 2007-05-11
  • 打赏
  • 举报
回复
char *p;
char q[100]="hello world";
p=q[0];
printf(p);
---
危险的操作,没分配空间
char *p = q[0];
这样还好一点
  • 打赏
  • 举报
回复
lz的代码编译不过去
bargio_susie 2007-05-10
  • 打赏
  • 举报
回复
没上机运行下吗?应该多上机调试,运行。。。

printf("%c\n", *p);
bargio_susie 2007-05-10
  • 打赏
  • 举报
回复
汗!!!!!!!!!!!!!!!!!!
xlbdan 2007-05-10
  • 打赏
  • 举报
回复
输出结果当然就是 hello world
xlbdan 2007-05-10
  • 打赏
  • 举报
回复
char *p;
char q[100]="hello world";
p=q[0]; //这要改为p=q,或p=&q[0]
printf(p); //最好改成printf("%s",p); 按字符串输出


33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧