size_t的秘密

size_t

本质上来说size_t它是一种“整型”类型,里面保存的是一个整数,就像int,long那样。这种整数用来记录一个大小(size) 。

size_t的定义

在stddef.h中定义

typedef unsigned int size_t(32位)
typedef unsigned long size_t(64位)

示例代码

#include <stdio.h>                                                                                                                                                      
int main(){
    size_t a=90;
    size_t b=-1;
    printf("the a is %d,the b is %d\n",a,b);
    if (a>b){
            printf("a is bigger than b");
    }   

    int c=90;
    int d=-1;
    printf("the c is %d,the d is %d\n",a,b);
    if (c>d){
            printf("c is bigger than d");
    }   
}

调用gdb
查看a\b\c\d的值(64位)

a=0x5a
b=0xffffffffffffffff
c=0x5a
d=0xffffffff

可以看出,b和d都是保存的补码,但是在判断大小的时候a>b=False,c>d=True
size_t是unsigned(无符号),所以判断大小的时候按照“字面大小进行判断”,int是有符号的,按照补码进行判断。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1、标识符 什么事标识符呢?变量的名字就是标识符。不仅限于变量名,程序中各种元素的名字,都属于标识符。例如符号常量...
    滕王阁序阅读 1,081评论 0 0
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 34,740评论 18 399
  • 当叶茂脑海里闪过叶斌名字之后,二话不说,便直奔叶斌家。 “叶斌哥 ,叶斌哥――”叶茂一到院门口就扯着嗓子喊。 “叶...
    蓝梦奇阅读 630评论 0 16
  • 一位老师把上课调皮捣蛋的学生叫到办公室:“你今天又哪根神经搭牢了?居然在数学课上扔纸团?!” 学生木木地望着老师。...
    余老诗写作课阅读 1,615评论 13 62
  • 从今天起,我将记录下,俩货的或坑爹或萌化日常from 你们娘 -日常碎碎念- bobby剃胎毛满一周。本周bobb...
    胡胡不喜阅读 397评论 0 0

友情链接更多精彩内容