首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

linux 下对strlen做逻辑判断的有关问题

2012-03-22 
linux 下对strlen做逻辑判断的问题。#includestring.hintmain(){chars[] 123456 chards[7] \0 in

linux 下对strlen做逻辑判断的问题。
#include   <string.h>
int   main()
{
                char   s[]= "123456 ";
                char   ds[7]= "\0 ";
                int   a=0;
                  int   d=-1;
                int   c;
                a   =   strlen(ds)-2;
                d   =   strlen(s)   >   (strlen(ds)-1);
                printf( "strlen(s)   is   %d\n   d   is   %d;   a   is   %d\n ",   strlen(s),d,   a);
                return   0;
}
程序超级简单。但是输出无法理解:
strlen(s)   is   6
  d   is   0;   a   is   -2

d的值是逻辑判断     strlen(s)   >   (strlen(ds)-1)   的结果。应该是1。但是却成了0
哪位指点一下啊。不胜感激啊~~

系统是RedHat   ES    
kernal   版本是2.4.21

[解决办法]
原型size_t strlen(const char *string );
size_t 无符号整数,32位整数的-1 转换为无符号整数是4294967294


[解决办法]
int a=7/2

结果a=3

就是类似这样的问题
[解决办法]
应该就是类型位unsigned int问题.

热点排行