| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1801 人关注过本帖
标题:如何理解指针作为循环的判断条件
只看楼主 加入收藏
meweiwei
Rank: 1
来 自:广东省茂名市
等 级:新手上路
帖 子:42
专家分:0
注 册:2007-5-15
收藏
 问题点数:0 回复次数:5 
如何理解指针作为循环的判断条件

请问下面一个循环语句用*P作为循环的判断条件是什么意思?谢谢!!
#include<iostream>
using namespace std;
void f1(int *s)
{
int *p,t;
for (p=s;*p;p++);//*p作为循环的判断条件是什么意思?
while (s<p-1)
{
t=*--p;
*p=*s;
*s++=t;
}
}
void main()
{
int str1[]="EFG456";
cout<<str1<<'\n';
f1(str1);
cout<<str1<<'\n';
f1(str1);
cout<<str1<<'\n';
}

搜索更多相关主题的帖子: 指针 条件 int cout void 
2007-06-10 11:26
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
对p解引用,是否为0作判断!

Fight  to win  or  die...
2007-06-10 11:31
doom5211
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2007-6-7
收藏
得分:0 

主程序中函数f1的实参传的是一个整型数组的首地址,那么在for循环里首先把p赋值一个s,则整型指针p也指向这个数组,for循环中间的判断条件应该是判断p是否越界的意思吧,就是p是否还是指向这个数组,我也不知道是不是这样,提出个人愚见,希望大虾指导啊


2007-06-10 11:32
meweiwei
Rank: 1
来 自:广东省茂名市
等 级:新手上路
帖 子:42
专家分:0
注 册:2007-5-15
收藏
得分:0 
不过如果把int str1[]="EFG456";改为char str1[]="EFG4560";也就是加上了一个零,也能能成函数的功能,请问二楼,这是怎么回事?
2007-06-10 11:39
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
以下是引用meweiwei在2007-6-10 11:39:50的发言:
不过如果把int str1[]="EFG456";改为char str1[]="EFG4560";也就是加上了一个零,也能能成函数的功能,请问二楼,这是怎么回事?

你给出的代码是错误的哦!你编译过了吗?
你应该用char数组而不是int数组,
在char数组中

for (p=s;*p;p++);//*p 等同于 *p != '\0'

推荐后一种写法。


Fight  to win  or  die...
2007-06-10 13:24
meweiwei
Rank: 1
来 自:广东省茂名市
等 级:新手上路
帖 子:42
专家分:0
注 册:2007-5-15
收藏
得分:0 
谢谢楼主,的确写错了
2007-06-10 20:11
快速回复:如何理解指针作为循环的判断条件
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023019 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved