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

相关推荐
Bullet3433 分钟前
IDEA运行Tomcat出现乱码问题解决汇总
java·经验分享·笔记·tomcat·intellij-idea
东京老树根3 分钟前
SAP学习笔记 - 开发29 - 前端Fiori开发 Custom Controls(自定义控件)
笔记·学习
꧁坚持很酷꧂26 分钟前
FreeRTOS学习01_移植FreeRTOS到STM32(图文详解)
stm32·嵌入式硬件·学习
致***锌1 小时前
期权怎么判断是不是主力合约?
笔记
~Yogi3 小时前
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
学习·spring·缓存
Moonnnn.5 小时前
【单片机期末】单片机系统设计
笔记·单片机·嵌入式硬件·学习
行云流水剑7 小时前
【学习记录】使用 Kali Linux 与 Hashcat 进行 WiFi 安全分析:合法的安全测试指南
linux·学习·安全
Chenyu_3108 小时前
12.找到字符串中所有字母异位词
c语言·数据结构·算法·哈希算法
门前云梦10 小时前
《C语言·源初法典》---C语言基础(上)
c语言·开发语言·学习
小前端大牛马11 小时前
java教程笔记(十一)-泛型
java·笔记·python