首页 > 其他分享 >C语言0基础入门游戏辅助开发—学习笔记02

C语言0基础入门游戏辅助开发—学习笔记02

时间:2024-03-08 18:25:25浏览次数:191  
标签:02 入门 int double 数据类型 long C语言 字节 常量

C语言0基础入门游戏辅助开发—学习笔记02

PS:这里仅作为本人学习过程中的随笔。

数据类型、sizeof运算符

数据类型

数据类型是在关键字内的,或者说关键字包含数据类型。

数据类型有哪些

image-20240308175551501

程序中的代码和数据都是以二进制的形式存储的,

对计算机系统和硬件而言,数据类型的概念不存在,

这个东西只是给程序员看的,

程序员决定使用的数据类型是什么。

数据类型的不同,会影响:

1.占用空间的大小

2.数据的存储形式

3.合理的表数范围

4.可参与的运算种类

常见数据类型占用内存空间大小:

  • int——基本整型,C标准为规定,系统相关

    在目前大多数系统上占4个字节

  • short int,简写为short

    短整型,2字节

  • long int,简写为long

    长整型,4字节

  • unsigned——无符号整型(正整数和0)

    无符号(没有正负数之分)

    用来修饰int、short、long

  • float

    单精度实型,4个字节

  • double

    双精度实型,8个字节

  • long double

    长双精度实型,IEEE规定10字节,系统相关

    VC++中占8个字节

  • char

    字符型,1字节

常见数据类型表数范围

数据类型 占内存的字节数 下限值 上限值
char 1 -128 127
unsigned char 1 0 255
short int 2 -32768 32767
unsigned short int 2 0 65535
unsigned int 4 0 4294967295
int 4 -2147483648 2147483647
unsigned long int 4 0 4294967295
long int 4 -214783648 2147483647
float 4 -3.14*10^-38 3.4*10^38
double 8 -1.7*10^-308 1.7*10^308
long double 8 -1.7*10^-308 1.7*10^308

计算占用内存空间的运算符

语法形式 运算结果
sizeof(类型) 类型占用的内存字节数
sizeof(变量或表达式) 变量或表达式所属类型占的内存字节数
main()
{
    int c = 8;
    
    int num = sizeof(int);
    
    int num = sizeof(c);
}

常量:宏常量、const常量

变量:在编译过程中,以及在内存数据集被调用的过程中,可以变动的量

常量:在编程过程中不允许变动的量,在内存中可以变动的量。(可以通过修改内存地址的数据,间接修改常量的值)。

宏常量(Macro Constant)

用一个表示符号来表示的常量。

宏定义

#define 标识符 字符串

编译预处理命令:在源程序编译之前,先对程序中的编译预处理命令进行处理然后将处理的结果和源程序一起进行编译,以得到目标代码。

例子:宏定义的例子,去定义一个宏常量

#define PI 3.14

意思就是将3.14放入PI中,其中#define起的作用就是替换

替换是从程序编译的那一刻之前进行的,是预先处理的,所以#define又叫编译预处理指令。

就是把代码里所有的3.14,全部换成PI,从你写代码开始,然后到程序生成之前,

程序生成之后,它就消失了。

特点:#define 宏名 常量

其中,常量不区分数据类型,且宏名一般全大写。

1.当调试查看运算结果时,发现无法查看PI,因为调试的时候已经发生了替换。

2.因为没有数据类型,所以运算中容易发生意想不到的错误,直接替换,不够严谨,所以需要一种有数据类型的常量。

宏常量是不存在内存地址的,它是没有内存数据的。


const 常量

编程中不可以修改常量数据;

取地址运算符(&):

怎么找到内存的值,使用取地址运算符:

int a = 30;

int address = &a;

我们是能够强制修改内存中的数据的,即使是使用的const的常量。

image-20240308180420782

image-20240308180425264


算术运算

C语言运算符

运算符(Operator):简单理解就是能够进行运算的符号,实现数据或者各种量的运算。

表达式(Expreesion):简单理解就是一个式子,和数学式子一样。

// 算术表达式:
a + b
//操作数 + 操作数

加减不多赘述。

除法(Division):

a / b

11 / 5 = 2
//整数除法(integer Division)

11.0 / 5 = 2.2
//浮点数除法(Floating Division)

总结:都是整数,自动去除余数取整;

如果有一个是小数,那么结果就会是小数。

小插曲:从“double” 到 “float” 截断

在C语言中,如果不指定数据类型,那么小数常量会被认为是double类型的

float a = 11.0 / 5
//会报错 11.0是double类型 5 是int类型 精度不匹配
//解决办法:11/0f  或者将float换成double

求余(Modulus)——也称为a对b取模

a % b

操作数必须是整数,返回a与b相除之后的余数。

运算的优先级

和数学差不多,先算乘除,后算加减,括号可以改变运算顺序。

标签:02,入门,int,double,数据类型,long,C语言,字节,常量
From: https://www.cnblogs.com/windfengyu/p/18061588

相关文章

  • 老鹅分享:海量后台开发——从入门到放弃
    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!cnblogs博客zhihuGithub公众号:一本正经的瞎扯大家好,我曾是一名鹅厂的后台开发工程师。从2013年开始,我就在准备一个后台开发方向的培训文档,并多次在内部培训和腾讯课堂上分享过。可是,当《数据密集型应用系统设计......
  • 使用 Visual Studio 2022 直接调试 WebAPI
    参考资料https://learn.microsoft.com/zh-cn/aspnet/core/test/http-files?view=aspnetcore-8.0在没有Postman等专门软件环境下,有没有轻量的调试http方法呢?尤其是每天都要打开宇宙第一IDE的环境,其实VS本身就带了一种方式,就是创建一个http文件来完成这个工作.VisualStud......
  • 2024-03-08 leetcode写题记录
    目录2024-03-08leetcode写题记录27.移除元素题目链接题意解法179.最大数题目链接题意解法75.颜色分类题目链接题意解法2024-03-08leetcode写题记录27.移除元素题目链接27.移除元素题意给你一个数组\(nums\)和一个值\(val\),你需要原地移除所有数值等于\(val\)的元素,并......
  • 联合省选 2024
    D1T1考虑什么样的\(m\)是合法的,发现只需要\(|X-\sum_{i=0}^{m-1}x_i|+|Y-\sum_{i=0}^{m-1}y_i|\lemk\)。这里认为\(x,y\)以\(n\)为周期无限循环。把绝对值拆开,可以得到四个式子:\[\begin{cases}X+Y-\sum_{i=0}^{m-1}(x_i+y_i+k)\le0\\X-Y-\sum_{i=0}^{m-1}(x_i-y_......
  • 2024哈佛-麻省数学竞赛(HMMT)2月锦标赛 团体赛第9题
    [55](题目分数)在一个200*200的网格表的每个单元格上放置一辆汽车,它面向四个基本方向之一。在一步操作中,选择一辆前面没有汽车立即挡住的汽车,并将其向前滑动一个单元格。如果一步操作会导致汽车离开网格,则将该汽车移除。对初始放置方法的要求是,一定存在一系列操作,最终可以将所有汽......
  • 2024.03.08
       第四天所花时间(包括上课)2h代码量(行)130行博客量(篇)2篇了解到的知识点无多少新的知识点,主要是对前三天的内容进行复习,并且进行编写。            protectedvoidonCreate(BundlesavedInstanceState){super.onC......
  • 【2024-03-05】分析矛盾
    20:00黄师塔前江水东,春光懒困倚微风。桃花一簇开无主,可爱深红爱浅红?                                                 ——《江畔独步寻花·其五》唐·杜甫今天下午约......
  • CVPR2024 | Point Transformer V3: 更简单、更快、更强!
    前言 本文没有动机在注意力机制内寻求创新。相反,它专注于在点云处理的背景下克服现有的准确性和效率之间的权衡,利用scale的力量。从3D大规模表示学习的最新进展中汲取灵感,我们认识到模型性能更多地受到规模的影响,而不是复杂设计的影响。因此,本文提出了PointTransformerV3(PTv3),它......
  • 【2024-03-04】幸福法宝
    20:00人,充满劳绩,但仍诗意地栖居。                                                 ——荷尔德林由于小区的名校要被搬迁合并的原因,我跟何太都被拉进了“组织群”,试图......
  • 入门教学指南
    代码类教程是我作为一名计算机科学与技术专业的大四学生,对于初学者而设计的。我明白作为新手入门编程可能会面临一些困惑和挑战,因此我希望通过这个教程来帮助他们更好地理解和掌握基础概念和技巧。这个教程的目标受众是那些刚开始学习编程或者对于网页开发感兴趣的小白。我将尽量......