返回信息流char *p;
char m[]="china";
p=m;
printf("%s",p);
总觉得最后一句有点问题,要是这样的话为啥输出来的不是地址本身呢,
感觉应该是printf("%s",*p);。为什么是不用加*呢
类似的
strcmp(v[i],v[left]);
这里v[i],v[left]存放的都是地址,是指针数组的成员,指向字符串。
感觉也应该是strcmp(*v[i],*v[left]);
不然比较的就是地址了啊。。。
好晕。。。
求解答。。
这是一条镜像帖。来源:北邮人论坛 / cpp / #38761同步于 2010/4/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
【菜鸟求助】C语言中关于字符串的操作
sad123
2010/4/30镜像同步14 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
strcmp(v[i],v[left]);
这个呢。。。。
【 在 DrJan 的大作中提到: 】
: google 格式化字符串
: 大意就是因为你 用了%s 所以printf就把后面的p当成了字符串首地址进行处理来输出字符串
v[i]这种用法其实就是 *(v+i)
这个我明白
但是这个数组里面放的是指针,指向字符串的指针
所以v[i]也就是*(v+i)仍然是地址。。
不明白这个比较字符串的函数,怎么直接用了地址,而不加*。。
是不是字符串的相关函数的使用都是这样?
【 在 DrJan 的大作中提到: 】
: v是数组 v[i]这种用法其实就是 *(v+i)请仔细研究数组与指针
基本上 是的 不然就是字符了
出去打酱油了
【 在 sad123 的大作中提到: 】
: v[i]这种用法其实就是 *(v+i)
: 这个我明白
: 但是这个数组里面放的是指针,指向字符串的指针
: ...................