| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3157 人关注过本帖, 1 人收藏
标题:几个问题,大家解解看
只看楼主 加入收藏
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
以下是引用Devil_W在2010-7-31 22:17:39的发言:

 
 
 
傻不傻? long * 跟char * 的大小也都是4.
看你这几天在这论坛里到处挑衅,有点狂妄自大过头了。哈哈...

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2010-07-31 22:24
zisefengye
Rank: 5Rank: 5
等 级:职业侠客
帖 子:167
专家分:386
注 册:2010-6-27
收藏
得分:0 
以下是引用Devil_W在2010-7-31 22:15:08的发言:

 
 
你这么问还觉得丢人。
 
你改动我引用的code干嘛
这是他直接拷贝粘贴的缘故,会导致某些代码的改动,他是无心的。
2010-07-31 22:26
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
以下是引用Devil_W在2010-7-31 22:15:08的发言:

 
 
你这么问还觉得丢人。
 
你改动我引用的code干嘛
我没改你code,这个论坛代码的一个bug.
再次告诉,你上面这两句话才是丢人的话。

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2010-07-31 22:26
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
        int i=43;
        printf("%d\n",printf("%d",printf("%d",i)));
        system("PAUSE");
        return 0;
}


printf的返回值是该次打印字符的个数。所以才是4321
2010-07-31 22:31
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
以下是引用Knocker在2010-7-31 22:26:31的发言:

我没改你code,这个论坛代码的一个bug.
再次告诉,你上面这两句话才是丢人的话。



别TMD扯淡了,这个问题显然就是因为传入的是指针.
多说无益。
2010-07-31 22:32
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
以下是引用zisefengye在2010-7-31 22:15:26的发言:

那要看d的值了,如果d<=COUNST - 1则是1,不过负数除外,假如是负数则是0
为什么d为负1返回值是0?返回0,当然直接跳出了,还没明白??

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2010-07-31 22:33
zisefengye
Rank: 5Rank: 5
等 级:职业侠客
帖 子:167
专家分:386
注 册:2010-6-27
收藏
得分:0 
以下是引用Knocker在2010-7-31 22:33:15的发言:

为什么d为负1返回值是0?返回0,当然直接跳出了,还没明白??
负数用补码表示。现在我明白了,是unsigned和signed比较的问题。

[ 本帖最后由 zisefengye 于 2010-7-31 23:12 编辑 ]
2010-07-31 22:41
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
以下是引用Devil_W在2010-7-31 22:32:47的发言:

 
 
 
别TMD扯淡了,这个问题显然就是因为传入的是指针.
多说无益。
这世上C编译器林林总总,几百上千的,通常来说,char、signed char和unsigned char的sizeof值为1,但其它数据类型可就不一定了

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2010-07-31 22:44
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
sizeof的返回类型是 size_t , size_t的宏定义是unsigned int

因此 d=-1先cast成unsigned 在跟COUNTS比较。

也许这个才是这个问题的解。

[ 本帖最后由 Devil_W 于 2010-7-31 22:48 编辑 ]
2010-07-31 22:47
zisefengye
Rank: 5Rank: 5
等 级:职业侠客
帖 子:167
专家分:386
注 册:2010-6-27
收藏
得分:0 
以下是引用Knocker在2010-7-31 22:44:14的发言:

这世上C编译器林林总总,几百上千的,通常来说,char、signed char和unsigned char的sizeof值为1,但其它数据类型可就不一定了
其实这个问题是这样的。sizeof(int*)是4,sizeof(char*)也是4。因为传递一个数组参数,接受参数的函数,会把传过来的参数当指针处理。

2010-07-31 22:48
快速回复:几个问题,大家解解看
数据加载中...
 
   



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

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