学习日记:数据类型2

目录

1.转义字符

2.隐式类型转换

[2.1 强制类型转换](#2.1 强制类型转换)

[2.2 不同类型间赋值](#2.2 不同类型间赋值)

[3.运算符 表达式](#3.运算符 表达式)

[3.1 算术运算符](#3.1 算术运算符)

[3.2 算术运算优先级](#3.2 算术运算优先级)

[3.3 赋值运算](#3.3 赋值运算)

[3.3.1 不同类型间混合赋值](#3.3.1 不同类型间混合赋值)

[3.4 逗号运算](#3.4 逗号运算)

4.生成随机数

[5. 每日一练](#5. 每日一练)


1.转义字符

'\n' 表示换行

'\t' 表示调到下一个制表符(一个制表符占8个空格)

'\b' 表示退格

'\r' 回车,光标回到当前行的开头

'\\' 表示打印一个 \

'\'' 表示打印 '

'\''' 表示打印 "

'\101' 表示转义八进制

'\x41' 转义十六进制

2.隐式类型转换

低精度和高精度混合运算时,低精度1往高精度转。

2.1 强制类型转换

(类型)运算数

注:不会影响运算数本身

复制代码
float a = 12.34;
(int) a

2.2 不同类型间赋值

3.运算符 表达式

3.1 算术运算符

  • 、 - 、 * 、/ 、 %

注:

/ (1)两个整数相除,相当于取整的效果

(2)除法运算中除数不能为0

% (1)除数不能为0

(2)运算数必须为整数。

(3)结果的符号取决于做操作数

另:取余运算可用于:判断奇数和偶数(%2 == 1 奇数; %2==0 偶数);取范围(%N 得到0~N-1的数)

++ 自增:表示一次+1;

(1)a++ :后置加加,先用(表达式的结果) 后加(让a自增)

(2)++a :前置加加 ,先加(让a自增) 后用(表达式的结果)

注:a++和++a如果单独使用,效果上没有区别,运算数必须是一个可以修改的变量,浮点类型也可以自增自减。

ps:i++和++i哪个效率高?

答:++i效率更高。

-- 自减:表示一次-1;

3.2 算术运算优先级

3.3 赋值运算

赋值运算符" = ":作用是将一个数据赋给一个变量。

eg:a = 10 结果是a的值,类型为a的类型

注:可以连续赋值 ---- a = b = c = 10

+= 、 -= 、 *= 、 /= 、 %= 也是赋值运算

eg: a += 1 相当于 a = a + 1

3.3.1 不同类型间混合赋值

(1)高精度的值赋给低精度会产生精度丢失。

(2)长类型的值赋给短类型会产生高位截断。

(3)短类型的值赋给长类型

a:无符号短类型赋给长类型------高位补零

b:有符号短类型赋给长类型------符号位扩展(高位补符号位)

3.4 逗号运算

逗号运算为顺序求值运算符

语法:表达式1,表达式2,表达式3...,表达式n

复制代码
1+2,a++,3+4;

运算过程:从左往右依次运算,结果为整个式子中最后一个表达式的结果。

4.生成随机数

rand();

eg:随机生成10个100以内的数

复制代码
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int main(void)
{

    int i = 0;
    srand(time(NULL));
    for(i = 0;i<10;i++)
    {
        printf("%d\n",rand()%100);
    }

    return 0;

}

运行结果:

5. 每日一练

从终端获得两个2位数,

将第一个数个位作为新数的千位,

将第二个数个位作为新数的百位,

将第二个数的十位作为新数的十位

将第一个数的十位作为新数的个位,

打印该新数。

复制代码
#include<stdio.h>

int main(void)
{
    int a,b,c1,c2,c3,c4,num;
    printf("Input two num:");
    scanf("%d %d",&a,&b);

    c1 = a % 10 * 1000;
    c2 = b % 10 * 100;
    c3 = b / 10 * 10;
    c4 = a / 10;

    num = c1+c2+c3+c4;

    printf("num = %d\n",num);

    return 0;
}

运行结果:

相关推荐
hmbbcsm7 小时前
关于transformors库的学习笔记
笔记·学习
凉茶钱7 小时前
【c语言】动态内存管理:malloc,calloc,realloc,柔性数组
c语言·c++·vscode·柔性数组
散峰而望7 小时前
【算法竞赛】C/C++ 的输入输出你真的玩会了吗?
c语言·开发语言·数据结构·c++·算法·github
小龙报7 小时前
【C语言】内存里的 “数字变形记”:整数三码、大小端与浮点数存储真相
c语言·开发语言·c++·创业创新·学习方法·visual studio
yaki_ya7 小时前
yaki-C语言:从概念基础到内存解析---数组(array)完全指南
java·c语言·算法
刃神太酷啦7 小时前
扒透 STL 底层!map/set 如何封装红黑树?迭代器逻辑 + 键值限制全手撕----《Hello C++ Wrold!》(23)--(C/C++)
java·c语言·javascript·数据结构·c++·算法·leetcode
星辰徐哥7 小时前
C语言网络编程:TCP、UDP、HTTP深度解析
c语言·网络·tcp/ip
2301_789015627 小时前
C++:继承
c语言·开发语言·c++
minglie18 小时前
qemu相关脚本
学习
霍霍的袁9 小时前
【初识C语言】预处理笔记(预处理指令、宏定义等)
c语言·笔记·visualstudio