学习日记:数据类型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;
}

运行结果:

相关推荐
行止61 小时前
OpenStack云平台管理
linux·openstack
秋说2 小时前
【PTA数据结构 | C语言版】将数组中元素反转存放
c语言·数据结构·算法
岁岁岁平安2 小时前
CentOS-7-x86_64解决:使用NAT模式无法ping通www.baidu.com或无法ping 8.8.8.8问题。
linux·运维·centos·centos-7
运维小贺2 小时前
各服务器厂商调整BIOS睿频教程
linux·运维·服务器·性能优化
特种加菲猫2 小时前
指尖上的魔法:优雅高效的Linux命令手册
linux·笔记
森焱森3 小时前
APM与ChibiOS系统
c语言·单片机·算法·架构·无人机
★Orange★3 小时前
Linux Kernel kfifo 实现和巧妙设计
linux·运维·算法
wuxuanok3 小时前
Web后端开发-分层解耦
java·笔记·后端·学习
bemyrunningdog3 小时前
Mock数据
linux·运维·ubuntu
是阿建吖!3 小时前
【Linux | 网络】网络编程套接字
linux·网络