鱼C论坛

 找回密码
 立即注册
查看: 2581|回复: 7

第一次来这还望关照

[复制链接]
发表于 2013-12-5 16:07:09 | 显示全部楼层 |阅读模式
1鱼币
帅哥 这段代码我不明白是怎样实现的  请帮忙解释一下 好吗??#include <stdio.h>
main()
{
        char *str = "I love FishC.com";
        while( *str++ != '.' )
                ;
        printf("%c", *str);
}


最佳答案

查看完整内容

这个............兄弟,俺没能领悟到你的思路,你的代码是要干什么啊? 就分析你的代码来讲,事情大概是这个样子的: char *str="I love FishC.com"; 定义一个指针变量存放字符串的首地址,此时,str=字符串的首地址 while( *str++ != '.' )这句代码*和++的优先级同级,且都是右结合性,所以等同于*(str++),假设str=1,这句代码的意思就是取地址1中的内容与 '.'比较,然后str自增1。 str++和++str的区别: str++是参与运 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-12-5 16:07:10 | 显示全部楼层
本帖最后由 maomingkun 于 2013-12-5 17:35 编辑

这个............兄弟,俺没能领悟到你的思路,你的代码是要干什么啊?
就分析你的代码来讲,事情大概是这个样子的:
char *str="I love FishC.com";  定义一个指针变量存放字符串的首地址,此时,str=字符串的首地址
while( *str++ != '.' )这句代码*和++的优先级同级,且都是右结合性,所以等同于*(str++),假设str=1,这句代码的意思就是取地址1中的内容与 '.'比较,然后str自增1。
str++和++str的区别:
str++是参与运算后str自增1;++str是自增1后再参与运算。

取第一个字符与‘.’比较,然后地址增加1,然后就是判断、循环,取第二个字符与‘.’比较,地址在增加1............直到取出的字符相等时,跳出循环,此时str的地址指向com的c(因为str++)。
因为你的循环体为空,什么都不能干,所以前面取出的字符未做处理
printf("%c", *str);为什么会只输出一个c呢?因为你用的是%c,只能输出一个字符,%s是输出字符串的。


我解释了一大堆,也不知道你能不能理解,能不能解开你心中的疑惑,不懂的可以继续追问!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-12-5 21:06:39 | 显示全部楼层
这段C源程序很简单,就是定义一个字符串,然后下面while(*str++!='.') ;   这句话程序上没有问题 实际表达上有点问题,我认为应该是while(*(str++)!='.') ;   才对,然后每次判断为真 就执行 分号 一次  ,知道判断到 点 就为假跳出while  执行下面的printf("%c", *str);   这函数意思是 str字符串里的第一个字符输出
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-12-6 09:51:16 | 显示全部楼层
while(*str++ != '.');
可以翻译为
char c;
do
{
     char c = *str;
     str++;
}while(c != ''.')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-12-6 09:52:29 | 显示全部楼层
while(*str++ != '.');
可以翻译为
char c;
do
{
      c = *str;
      str++;
}while(c != ''.')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-12-6 12:22:43 | 显示全部楼层
只是指针吗     为什么我看不不懂:cry啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-12-6 18:29:02 | 显示全部楼层

哥们儿,*str++和*(str++)是一样的,*(指针运算符)和++的优先级相同,同时是右结合性所以...........是不是这样呢?可以看下他的汇编代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-12-7 12:32:39 | 显示全部楼层
个人确实无法理解 这代码他 到底有什么目的的说 他干了什么事我大概还能知道课干这些事有什么用我......
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 21:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表