首页 > 其他分享 >C语言学习day03

C语言学习day03

时间:2024-07-24 21:27:26浏览次数:16  
标签:类型转换 运算符 变量 day03 数据类型 C语言 学习 ++ 运算

变量

概念

表面:程序运行过程中取值可以改变的数据

实质:变量其实代表了一块内存区域/单元/空间。变量名可视为该区域的标识。 整个变量分为三部分:

   变量名:这个只是变量的一个标识,我们借助变量名来存取数据。

   变量空间/内存单元:这个就是内存中分配的一块用来存储数据的空间/区域。

   数据/变量值:这个就是存放在变量空间中的数据 

   注意:我们把数据存放间变量名对应空间的过程称之为变量的赋值操作。

语法:

[修饰符] 数据类型 变量列表;

说明:

1. 变量定义是,利用同一个类型标识符可同时定义多个变量,各个变量之间使用 , (英文逗号)分 割。

2. 定义变量后,如果未对变量进行初值的赋予,则变量所代表的内存空间中的数据是随机安排的。 3. 可以在变量定义的同时给变量赋值,这个操作称为变量的初始化,C语言允许对变量进行初始化。

4. 初始化变量是,尽量做到类型相同,例子: long l = 567L

5. 整型数据在内存中的存放方式:

   按照补码方法存放:

        正整数的补码就是将该数据转换为二进制格式。

        负整数的补码就是将该数据的绝对值转换为二进制格式,按位取反,并+1。

6. 浮点型数据在内存中的存放方式

    采用指数方式存放:

数据类型转换

规则:不同的数据类型参与运算,需要转换为同一类型后运算

     数值比较由小到大简单排序:

隐式类型转换

说明:编译系统自动完成,一般是低优先级类型向高优先级类型转换,这种被称作自动类型转换 (由小到大)。

语法:

大数据类型 变量名 = 小数据类型变量;

强制类型转换

说明:程序员自己实现,一般是高优先级类型向低优先级类型转换,这种被称作强制类型转换(由 大到小)

语法:

小数据类型 变量名 = (小数据类型)大数据类型变量;

注意:强制类型转换过程中,可能会出现精度丢失的问题。如果大类型数据范围 小类型数据范围,此时丢失超出部分的 数据,精度会缺失!

原则:类型转换并不会改变原变量的类型。

运算符

算数运算符

单目运算符

说明: ++ -- +(正) -(负) *(解引用运算符,后面讲)

++a与a++的区别

int a = 1,int x = ++a; : ++ 在前,先自加1,后运算

int a = 1,int x = a++; : ++ 在后,先运算,后自加1

eg:

总结: 分析上面的案例,我们发现,不管是 ++ 在前,还是 ++ 在后,计算数自身都会+1。区别在于运算的结 果不一样。 ++ 在前,先自加1,后运算; ++ 在后,先运算,后自加1。

双目运算符:

说明: + - * / %

注意:

1. 两个整数相除的结果是整数,小数部分被舍弃。要想其结果是实数,可在分子*1.0(隐式类型转换)

2. 求模运算(取余运算)左右两边的操作数都必须是整型。如果是类似于3.0这样的数,是错误的。

关系运算符:

说明: >  <  >=  <=  !=  ==

由关系运算符构成的表达式称为关系表达式,关系表达式的值为boolean(布尔值)

非0 :关系成立,为真

0 :关系不成立,为假

逻辑运算符

说明: &&(与) ||(或) !(非)

&& :逻辑与(且),符号两边的操作数都为真,结果才为真。举例: ((5>4)&&(5-4)>1) ,结果 0 || :逻辑或(或),符号两边的操作数只有有一个为真,结果就为真。举例: ((5>4)||(5- 4)>1) ,结果 1

! :逻辑反(取反),取反,非0为真,举例: !(!(5>4)) ,结果 1

惰性运算

所谓的惰性运算,就是减少运算次数。

短路与: && 两边的操作数,只要左边不成立 0 ,直接返回假,不再校验右边。

短路或: || 两边的操作数,只要左边成立 1 ,直接返回真,不再校验右边。

标签:类型转换,运算符,变量,day03,数据类型,C语言,学习,++,运算
From: https://blog.csdn.net/weixin_70912462/article/details/140673289

相关文章

  • C语言——数据类型
    C语言——数据类型C语言中的数据类型种类整型整型的常量形式整型的变量形式整型类型的分类整型数据在内存中的存储浮点型浮点型的大小浮点型数据的存储浮点数的比较问题字符型C语言中的数据类型种类数据类型可分为基本数据类型(整型,浮点型,字符型,枚举类型),构造数据类......
  • Spring Boot学习|Stopwatch 在 Spring Boot 中的使用
    文章目录什么是Stopwatch?使用场景优点缺点注意事项使用步骤使用案例及结果可能面试题1.**理解与解释**2.**技术细节**3.**实际应用**4.**优缺点与替代方案**5.**面向框架的具体问题**6.**高级主题**什么是Stopwatch?Stopwatch是由ApacheCommonsLang......
  • 目标检测的即时演进:在线学习在行动
    目标检测的即时演进:在线学习在行动在线学习(OnlineLearning)是一种机器学习范式,它允许模型通过逐步接收数据并实时更新来学习。这种学习方式对于目标检测尤其重要,因为它允许检测系统在不断变化的环境中适应新的或罕见的目标,同时保留对旧目标的检测能力。本文将探讨在线学习......
  • hadoop学习
    Hadoop是一种用于存储和处理大数据的开源软件框架,它采用分布式文件系统和MapReduce编程模型,可以有效地处理海量数据。在学习Hadoop的过程中,我掌握了许多重要的知识和技能,以下是我的Hadoop学习总结:首先,我学会了Hadoop的核心概念和架构。Hadoop由HDFS(分布式文件系统)和MapReduce组成......
  • opencascade AIS_Line源码学习
    前言AIS_Line是OpenCASCADE库中的一个类,用于表示和操作三维直线。它可以通过几何线(Geom_Line)或者两个几何点(Geom_Point)来初始化。方法1//!初始化直线aLine。Standard_EXPORTAIS_Line(constHandle(Geom_Line)&aLine);2//!初始化直线的起点aStartPoint和终......
  • 基于AT89C51单片机的简易计算器(含仿真、源码、论文适用于小白学习、课程设计等)
    本篇文章论述的是基于AT89C51单片机的简易计算器设计的详情介绍,如果对您有帮助的话,还请关注一下哦,如果有资源方面的需要可以联系我。含有仿真、源码的下载链接(如果打开不显示就是资源在审核中,如果着急需要的话可以私信我获取)基于AT89C51单片机的简易计算器资源-CSDN文库......
  • 学习vue第一天
    文章目录1.什么是Vue?2.渐进式框架3.如何新建一个vue项目1.什么是Vue?Vue(发音为/vjuː/,类似 view)是一款用于构建用户界面的JavaScript框架。它基于标准HTML、CSS和JavaScript构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。无......
  • Java基础常见面试题学习(上)
    1、JVMvsJDKvsJRE①Java虚拟机(JVM)是运行Java字节码的虚拟机。JVM有针对不同系统的特定实现(Windows,Linux,macOS),目的是使用相同的字节码,它们都会给出相同的结果。字节码和不同系统的JVM实现是Java语言“一次编译,随处可以运行”的关键所在。JVM并不是只有一种!只要满足JVM规范,......
  • 小目标检测:深度学习中的微观挑战
    小目标检测:深度学习中的微观挑战在计算机视觉领域,小目标检测是一个具有挑战性的任务。小目标由于其在图像中占据的像素较少,常常难以被准确识别和定位。这一问题在交通监控、卫星图像分析、医学成像等领域尤为突出。本文将探讨小目标检测面临的主要挑战,并讨论一些流行的解决......
  • c语言-数组(1)
    5.数组(1)数组的意义:保存多个具有相同数据类型的数据特点:(1)具有相同的数据类型。(2)数据的地址是连续的 数组的表现形式类型标识符[长度];数组的空间大小 数组的空间大小=单个数据的空间大小*长度tip:已知数组table,求该数组的长度?intl=sizeof(table)/sizeof(......