C语言学习笔记day2

1. 常量

1.1 定义

在程序运行过程中不能被改变的量

1.2 整形常量

1.3 浮点型常量

1.4 字符常量

1.5 字符串常量

"ab" == 'a' + 'b' + '\0'

"ab\0" =='a' + 'b' + '\0' + '\0'

'\0' : 标识字符串结尾(每个字符串末尾都有一个\0)

"a" == 'a' + '\0'

'a' == 'a'

1.6 标识常量

#define PI 3.1415

注意:

1.宏定义名字可以小写,但为了和变量区分,一般都用大写

2.宏定义时能加括号就加括号,不要吝啬小括号

宏只是代码的替换,中间不进行任何数据计算的操作

2. 变量

2.1 定义

在程序运行过程中值可以发生改变的量,通常变量先定义再使用,默认为随机值

2.2 变量的定义

数据类型 变量名;

2.3 变量名

1.只能由字母、数字、下划线组成

2.不能以数字开头

3.不能与C语言关键字重名

4.最好不要与C语言库函数重名

5.变量名最好见名知意

6.可以采用驼峰法(软件编程常见)、Linux内核命令方法(内核开发

2.4 变量的初始化:

在定义变量时为变量赋初值

2.5 整形变量:

short Num;

unsigned short Num;

int Num;

unsigned int Num;

long Num;

unsiged long Num;

char Num;

unsigned char Num;

2.6 浮点型变量:

float f;

double d;

3. 数据类型转换

3.1 显式类型转换(显示类型转换)

(数据类型)变量名

将变量类型强制类型转换为括号内所写类型(注意:只临时转一次)

3.2 隐式类型转换:

不同数据类型完成数据运算、数据处理做隐式类型转换

转换规则:

1.低精度向高精度转换

1.浮点型比整形精度范围更高

2.同种类型所占字节空间越大,精度范围越高

3.无符号精度范围比有符号精度范围更高

2.char short 进行数据处理时会默认转换为int类型

float 进行数据处理时会默认转换为double类型

char short -> int 低

long

unsigned

float -> double 高

4. 语句

以 ; 号结尾的一段代码称为语句

5. 表达式

由一个或者多个运算符及 变量/常量 组成的式子称为表达式

表达式一定是有值

6. 运算符

6.1 算数运算符

*

/

% (唯一不能对浮点数操作的算数运算符)

++ : 自增运算符

-- : 自减运算符

i++ : 后置++ 先用再加

++i : 前置++ 先加再用

6.2 关系运算符

>

<

==

!=

>=

<=

泊尔类型:

bool

值域:

true 1

false 0

注意: 在C语言中:非0值为逻辑真值

0值为逻辑假值

6.3 逻辑运算符(重点)

&& : 逻辑与 既..又.. (全真为真,一假为假)

|| : 逻辑或 要么..要么.. (一真为真,全假为假)

! : 逻辑非 真取非得假,假取非得真

注意:截断特性(从左往右计算)

1.逻辑与一假为假,左边为假,右边不再计算

2.逻辑或一真为真,左边为真,右边不再计算

6.4 位运算符(重点)

& : 按位与 (与0得0、与1不变)

| : 按位或 (或1得1、或0不变)

^ : 按位异或 (相同为0、相异为1) num ^ num == 0 num ^ 0 == num

~ : 按位取反

>> : 右移

缩小移动的数字 : 除以2^n

<<:左移

放大移动的数字 : 乘以2^n

让一个字节第n位(从右往左第n位)置1:

num = num | (1 << n);

让一个字节第n位(从右往左第n位)置0:

num = num & ~(1 << n);

编写程序判断一个数二进制中有多少位1?

两个数交换(三种数据交换得方法):

1.使用临时中间变量完成交换

2.使用算术运算完成交换

3.异或可以完成数据交换

6.5 特殊运算符(三目运算符)

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

表达式1为真,执行表达式2,否则执行表达式3

相关推荐
阿登林17 分钟前
初步学习WPF-Prism
学习·wpf
多吃蔬菜!!!18 分钟前
vscode 搭建C/C++开发环境搭建(linux)
linux·c语言·c++
凳子(刘博浩)42 分钟前
决策树的笔记
笔记
武昌库里写JAVA2 小时前
使用 Java 开发 Android 应用:Kotlin 与 Java 的混合编程
java·vue.js·spring boot·sql·学习
喜欢你,还有大家3 小时前
Linux笔记7——shell编程基础-1
linux·运维·笔记
山中月侣4 小时前
Java多线程编程——基础篇
java·开发语言·经验分享·笔记·学习方法
小眼睛FPGA5 小时前
【盘古100Pro+开发板实验例程】FPGA学习 | gamma 变化 | 图像实验指导手册
科技·学习·ai·fpga开发·fpga
subuq5 小时前
Web3.0 时代的电商系统:区块链如何解决信任与溯源问题?
大数据·网络·学习
袁培宇5 小时前
python学习打卡day40
人工智能·python·学习
爱和冰阔落5 小时前
从关机小游戏学 C 语言:分支循环 + 关键字(break/continue)实战
c语言·开发语言