`
Phynix
  • 浏览: 11669 次
  • 性别: Icon_minigender_1
  • 来自: 济南
最近访客 更多访客>>
社区版块
存档分类
最新评论

char 类型和int比较大小

阅读更多
先看下面一段代码
#include <stdio.h>
main() {
   unsigned char c = -1;
   signed int i = 1;
   printf("%c\n",c);
   if(c > i)
     printf("c>i\n");
   else
     printf("c<=i\n");
}

我是在gcc下编译的,奇怪的是表达式printf("%c",c);打印出来的是乱码(一个带有背景的?),但是却是能比较出来结果的,c>i,但是c为什么大于i呢?为什么打印出来的结果是乱码呢?ASCI编码下的-1是不可打印字符?
分享到:
评论
3 楼 Phynix 2008-12-28  
恩,有道理,谢谢,明白了~
2 楼 mikeandmore 2008-12-28  
先看下面一段代码
#include <stdio.h>
main() {
   unsigned char c = -1; // c溢出,于是c=255
   signed int i = 1;
   printf("%c\n",c); // 255的ascii码应该是人看不懂的某个。。。
   if(c > i)
     printf("c>i\n");
   else
     printf("c<=i\n");
}

1 楼 sdh5724 2008-12-27  
unsigned char c = -1; 


你还给-1啊

相关推荐

    对比MySQL中int、char以及varchar的性能

    在数据运算和比较操作中,整数类型的优势更为明显,因为它们是原生支持的类型,运算速度较快。但在使用索引后,这个优势进一步减小,整数和字符串类型的性能差距变得非常微小。 在实际开发中,尤其是处理枚举类型时...

    Keil MDK-ARM各种数据类型占用的字节数 char short int float double

    此外,理解数据类型的大小也有助于理解和调试涉及指针运算和内存布局的代码。 在具体编程实践中,可以使用`sizeof`运算符来动态获取数据类型占用的字节数,例如: ```c unsigned char a = sizeof(char); unsigned ...

    char short int 范围测试程序

    在C语言中,`char`、`short`和`int`是三种基本的整数类型,它们各自有特定的数值范围。理解这些类型的范围对于编写高效且无错的C程序至关重要。下面我们将深入探讨这些数据类型及其在C语言中的应用。 `char`类型在...

    char ,int,long,float,double,等在64位和32位下分别占多少字节

    本文旨在探讨编程语言中常见的基本数据类型(`char`, `int`, `long`, `float`, `double`)在32位与64位操作系统环境下所占用的字节数量,并深入分析这些差异产生的原因及其对程序设计的影响。 #### 1. 数据类型的...

    栈和队列的基础上设计模拟停车场管理程序  停车场管理问题 #include&lt;stdio.h&gt;    #include&lt;stdlib.h&gt;    struct {    char status;    int num;    int time;    }a; /*命令的结构*/    typedef struct{    int num;    int time;    }Element;    struct {    Element *base;    Element *top;    in

    在这个C语言程序中,设计了一个模拟...这个程序提供了一个基础的停车场管理模型,但实际的停车场管理系统可能还需要考虑更多的细节,比如车位类型(大小、残疾人专用等)、预约系统、实时的车位状态显示、支付系统等。

    各种C编译器中枚举类型大小问题

    ENUM类型作为C标准变量类型,其长度是不受编译开关影响的,就像char类型一样无论如何pack依然是单字节。 因此,在编写代码时,建议尽量使用char或int来代替枚举类型,以避免不必要的麻烦。 此外,在使用枚举类型...

    详细介绍c的指针与int类型的使用

    例如,`char *`类型的指针每移动一次只跨越1个字节,而`int *`类型的指针每移动一次则跨越4个字节(假设`int`的大小为4字节)。这一点对于理解和使用指针至关重要。 #### 示例分析:不同类型指针的使用 接下来,...

    WCHAR和CHAR互转小例子

    在编程领域,尤其是在Windows系统和C++编程中,`WCHAR` 和 `CHAR` 是两种常用的字符类型。它们分别代表宽字符和窄字符,用于处理不同的字符编码,尤其是在处理多语言和Unicode支持时。本文将深入讲解这两个类型,并...

    stdint.h头文件

    通常,C语言中的整数类型(如`int`, `short`, `long`等)的大小和符号取决于目标系统的架构,这可能导致在不同平台上编写跨平台代码时出现兼容性问题。`stdint.h`就是为了克服这个问题而设计的,它定义了以下几种...

    sizeof(int)

    例如,int 类型的存储空间大小可能是 2 字节或 4 字节,取决于编译器和机器字长。 ANSI/ISO 规定了一些铁定的原则: 1. sizeof(short int) (int) 2. sizeof(int) (long int) 3. short int 至少应为 16 位(2 字节...

    程序员面试宝典题目总结

    int main(int argc, char* argv[]) { int b=3; int arr[] = {6, 7, 8, 9, 10}; int *ptr = arr; *(ptr++) += 123; printf("%d, %d\n", *ptr, *(++ptr)); return 0; } ``` **知识点解析:** - `*(ptr++)` 表示...

    Java中long类型与Long类型的区别和大小比较详解

    基本类型包括byte、short、int、long、float、double、char和boolean,而对象类型包括Byte、Short、Integer、Long、Float、Double、Character和Boolean。Long类型是long类型的包装类,而Byte和Float也是基本类型的...

    stdint.h 下载

    `stdint.h` 是一个在C语言编程环境中常用的头文件,主要包含了各种整数类型的定义,这些类型具有固定的字节大小和二进制表示,对于跨平台编程和内存管理非常重要。在C99标准中,`stdint.h` 被正式引入,为程序员提供...

    C语言数据类型大小和结构体中变量的地址分配方法.doc

    首先,C语言中的基本数据类型的大小是固定的,如char类型占1字节,short类型占2字节,int类型占4字节,long类型占4字节,float类型占4字节,double类型占8字节,long double类型占12字节。 在Visual C++中,数组的...

    char*转为LPCWSTR

    例如,在本篇中我们将讨论如何将 `char*` 类型的字符串转换为 `LPCWSTR` 类型。这种转换在 Unicode 环境下尤为重要,因为 `LPCWSTR` 是一种广泛使用的宽字符指针类型。 #### 一、基础知识介绍 1. **`char*`**:在 ...

    cpp代码-设计一个数组模板类(myvector),完成对int、char、teacher类型元素的管理。teacher类元素为简单数据类型

    7. **成员函数重载**:为了支持不同类型的元素,如`int`、`char`和`teacher`,`myvector`的成员函数需要能够处理这些类型。特别是`push_back()`和`insert()`需要考虑不同类型元素的复制和移动语义。 8. **`teacher`...

    long 和 int 的相互转换.docx

    原始数据类型包括byte、short、int、long、float、double、char和boolean,而引用数据类型则包括类(class)、接口(interface)和数组。在处理数值计算时,我们可能需要在不同数据类型之间进行转换,特别是当涉及到long...

    CString-int-string-char.zip_strstr

    在C++编程语言中,`CString`、`int`、`string`以及`char`都是常见的数据类型,它们各自有着不同的用途。今天我们将重点关注`strstr()`函数,它在字符串处理中扮演着重要的角色,特别是在`CString`和`std::string`...

    Int 到 Char 转换的 Java 程序.docx

    在Java编程语言中,将整数(Int)转换为字符(Char)是一项常见的任务,特别是在处理数字与字符串混合的数据时。本文将详细介绍三种不同的方法来完成这个转换,并提供相应的Java代码示例。 ### 方法一:使用`switch...

    Java中数据类型和MYSQL中数据类型的对比

    基本数据类型是预定义的,它们的大小和值的范围是固定的。例如,`int` 在 Java 中占用 4 个字节,可存储 -2^31 到 2^31-1 之间的整数。而 `char` 类型占据 2 个字节,表示 Unicode 字符。 MySQL 的数据类型则主要...

Global site tag (gtag.js) - Google Analytics