首页 > 其他分享 >【C语言基础】数据类型、运算符和表达式

【C语言基础】数据类型、运算符和表达式

时间:2024-09-12 14:49:24浏览次数:3  
标签:字符 常量 双目 数据类型 C语言 运算符 整型 c1 字节

1 数据类型

  • 基本类型
    • 整型:短整型,基本整型,长整型
    • 字符型
    • 实型(浮点型):单精度型,双精度型
    • 枚举类型
  • 构造类型:是使用基本类型的数据 或者使用已经构造好的数据 类型,进行添加、设计构造出新的数据类型,使其设计的新构造类型满足待解决问题所需要的数据类型。
    • 数组类型
    • 结构体类型
    • 共用体类型
  • 指针类型
  • 空类型:关键字是void。

2 常量和变量

2.1 常量

2.1.1 数值型常量 - 整型常量

  • 十进制整数:没有前缀。无符号数范围为0~65535;有符号数范围为-32768~+32768。
  • 八进制整数:以0开头。无符号数范围为0~0177777。
  • 十六进制整数:以0x或0X开头。无符号数范围为0x0~0xFFFF。

长整型数是用后缀L或l来表示,如:123L,789l,042L,0377777L,0x1al,0x2FFFFL。

整型数据在内存中以二进制形式存放,数值以补码表示。正数的补码与它的原码一致,负数的补码是它的绝对值的二进制形式,按位取反再加1。

如:-11

绝对值为0000000000001011,按位取反为1111111111110100,再加1 为1111111111110101,即1111111111110101是-11在内存中存储的情况。

注:对于有符号整数,它在内存存放的最左边一位表示符号,0为正,1为负。

2.1.2 数值型常量 - 实型常量(浮点型常量)

 十进制的有符号实数,由整数和小数组成。当十进制数加上e或E以及阶码组成时,其为指数形式,如234e2或234E2,表示234x10^2。

2.1.3 字符型常量

字符常量

  • 一般字符:由单引号括起的单个字符。
  • 转义字符:
常用转义字符表
转义字符意               思
\n回车换行

\f

横向跳到下一制表位置
\v竖向跳格
\b退格
\r回车
\f走纸换页
\\反斜线符
\'单引号符
\"双引号符
\a鸣铃
\ddd1~3位八进制数所代表的字符
\xhh1~2位十六进制数所代表的字符

字符串常量

由双引号括起的若干个字符,如"Hello, world!"。

注:C语言中存储字符串常量时,系统会自动在字符串末尾加一个\0作为字符串结束的标志。字符常量则没有,存储的是字符的ASCII码值。

2.1.4 符号常量

在C语言中,瘵程序 中的常量定义为一个标识符,这个常量就叫做符号常量。在使用符号常量前,首先需要定义,通常使用大写字母表示。

2.2 变量

变量关键字及内存大小
关键字类型名称内存大小
char字符型1个字节(8位)
int整型4个字节(32位)
short短整型2个字节(16位)
long长整型4个字节(32位)
long long更长的长整型8个字节(64位)
float单精度4个字节(32位)
double双精度8个字节(64位)
long double长双精度8个字节(64位)

字符型数据可以字符形式输出,也可以整数形式输出。

例如:

#include <stdio.h>
main()
{
	char c1, c2;
	c1 = 'a';
	c2 = c1 + 10;
	printf("c1: %d, %c\n", c1, c1);
	printf("c2: %d, %c\n", c2, c2);

}

输出为

c1: 97, a
c2: 107, k

3 运算符和表达式

运算符、变量和函数一起组成表达式。

运算符
运算符意思运算方向运算对象个数优先级
()圆括号(函数等)左 -> 右1
[]数组、下标
->指向结构体成员
.结构成员访问
!

逻辑非。

0取非为1,其它任意非0数值取非都为0。

左 <- 右单目2
~按位取反
++

自增。

变量在前:先使用再自增;

变量在后:先自增再使用;

--

自减

变量在前:先使用再自减;

变量在后:先自减再使用;

+正号
-负号
*指针运算符
&取地址
(类型)

强制类型转换。

如:

char a;

float b=10000;

a=(char)b;  /*强制转换赋值*/

sizeof

求内存大小。

使用方式:

a) sizeof(变量名)。

b) sizeof(数据类型名)。

c) sizeof 变量名。

*左 -> 右双目3
/
%

取余(求模)。

参与运算的量需均为整数。

+左 -> 右双目4
-
<<左移左 -> 右双目5
>>右移
<小于左 -> 右双目6
<=小于等于
>=大于等于
>大于
==等于左 -> 右双目7
!=不等于
&

按位与。

只有两个数的二进制同时为1,结果才为1,否则为0。

左 -> 右双目8
^

按位异或。

当两个数的二进制相同时,结果为0,否则为1。

左 -> 右双目9
|

按位或。

只有两个数的二进制同时为0,结果才为0,否则为1。

左 -> 右双目10
&&

逻辑与。

只有都为真(1)时,结果才为1,否则结果为0

左 -> 右双目11
||

逻辑或。

只要有一个为真(1),结果就为1

左 -> 右双目12
?:

条件

表达式1 ? 表达式2 : 表达式3

表达式1为真,则采用表达式2,否则采用表达式3. --> 前真后假

左 <- 右三目13
=、+=、-=、*=、/=、&=、^=、|=、<<=、>>=各种赋值。先运算再赋值。左 <- 右双目14
,逗号(顺序求值)左 -> 右15

标签:字符,常量,双目,数据类型,C语言,运算符,整型,c1,字节
From: https://blog.csdn.net/weixin_46891908/article/details/141930607

相关文章

  • 【Go】深入探索Go语言中运算符
    ✨✨欢迎大家来到景天科技苑✨✨......
  • C语言15--联合体与枚举
    联合体(共同体)基本概念        联合体的外在形式跟结构体非常类似,但它们有一个本质的区别:结构体中的各个成员是各自独立的内存空间,而联合体中的各个成员却共用同一块内存,因此联合体也称为共用体。联合体各成员的堆叠效果联合体内部成员的这种特殊的“堆叠”效果,使......
  • 鸿蒙原生应用元服务开发-仓颉基础数据类型元组类型
    元组(Tuple)可以将多个不同的类型组合在一起,成为一个新的类型。元组类型使用(T1,T2,…,TN)表示,其中T1到TN可以是任意类型,不同类型间使用逗号(,)连接。元组至少是二元,例如,(Int64,Float64)表示一个二元组类型,(Int64,Float64,String)表示一个三元组类型。元组的长度是固定的......
  • 【C语言加油站】你真的知道什么是文件吗?今天咱们就来好好认识一下文件
    文件操作导读一、什么是文件?1.1日常生活中的文件1.2计算机中的文件1.3文件的分类1.4文件的名字二、为什么要有文件三、如何使用文件?结语导读大家好,很高兴又和大家见面啦!!!在今天的内容中,我们就会介绍C语言中的文件操作。在开始今天的内容之前,我先问一下大家,你......
  • 用C语言完成扫雷游戏
    引言     《扫雷》是一款大众类的益智小游戏,于1992年发行。游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷,踩到一个雷即全盘皆输。            相信大家一定对《扫雷》这个游戏不陌生,我们只要知道游戏运行的逻辑,就可......
  • 20240909_111725 c语言 关于进位制
    各种进制注意:在较老的版本如VisualStudio2010中,C语言不支持直接使用0b开头来表示二进制数。对于八进制数,如果写成intnum=12;这是十进制的12,如果要明确表示八进制的12,可以写成intnum=012;测一测注,包含了语法错误的情况......
  • Scala的数据类型与运算的应用
    在Scala中,数据类型和运算的应用非常广泛,它们是构建程序的基础。以下是关于这些内容的详细介绍: 基本数据类型:Scala提供了八种基本数据类型,包括Byte、Char、Short、Int、Long、Float、Double和Boolean。这些类型涵盖了数值、字符、布尔值等不同的数据类型。例如,使用vali=1......
  • Python(二)-运算符
    常见的运算符(1)算术运算符:+、-、*、/、//、%、**;(2)赋值运算符:=、+=、-=、*=、/=、//=、%=、**=;(3)比较运算符:>、<、>=、<=、==、!=;(4)逻辑运算符:not、and、or。算术运算符算术运算符名称描述+加法两个数相加,如6+12=18。-减法两个数相减,如25-9=16。*乘法两个数相乘,如3*7=......
  • C语言之Strict Aliasing(严格别名)
    C语言之StrictAliasing(严格别名)alias(别名)C语言的左值(lvalue)和右值(rvalue)的含义以赋值符号=为界,=左边的就是左值,=右边就是右值。比如:(1)intb=3;(2)inta=b;第(2)行代码,a为左值,b为右值。可以将L-value的L,理解成Location,表示定位、地址。将R-value......
  • 【C语言基础】指针
    1指针与地址,指针变量地址就是内存区中对每个字节的编号。如整型变量a、b、c,整型变量需要4个字节,分配的地址分别为1000、1004、1008。可以通过访问变量的地址来找到所需的变量,我们称变量的地址为变量的“指针”。上例中的1000、1004、1008分别为变量a、b、c的指针。指针变量......