零基础C语言(二)
C语言基本数据类型
1.各种常量
-
常量: 一些具体的值 (常量一般是不能改变的)
-
C语言常量的分类:
-
整型常量: 1 2,3 4 ....
- 有符号: 包含整数
- 无符号: 没有负数 1u; --->unsigned
-
实数常量
- 单精度浮点数: 1.1f -->float (小数位7-8)
- 双精度浮点数:1.1 在C语言程序中默认的小数都是双精度 (小数位15-16)
- 科学计数法: 1.1e2(double类型的110.0) e2等价于10^2 e的幂不能是小数,但是可以是负数
-
字符常量
-
字符边界符 ' '
-
正常的字符常量 'a' 注意点: 'A' 和'a'是两个不同的字符 'ad'这种是不算字符的
-
特殊字符常量
- 转义字符: \加上特定的字母组成
- 特殊字符表示方式:%%在打印时表示一个%
-
-
字符串
- 必须用字符串边界符括起来 “A”
- ‘A’ (1Byte)和 "A" (2Byte) 是有区别
- 每一个字符串都有一个字符串结束标记 '\0'
-
在数据前面加前缀
-
045 0开头的数字 八进制的整型常量 注意点: 083 这个是错的,八进制是不会出现8的
-
0xaf 0x(是0不是O)开头的数字是十六进制的常量 注意点: 不能超过f 0xaz 这个是错误的
10 11 12 13 14 15
A B C D E F
-
0b开头 就是二进制 0b11011
-
.123 表示当前数字是一个实数常量 就是0.123
-
在数据后面加后缀
- 1u: 无符号的(unsigned)
- 1f: 单精度数(float)
- 1L: 长整形(long)
-
-
2.各种变量
-
变量: 可以改变的量,可以理解成一个容器 int num=inum (是一种值传递,后续改变inum不影响num)
-
如何产生一个变量: 类型 变量名;
-
变量名又叫做标识符
-
标识符命名的规则和规范
-
规则: 1.必须是字母或者_开头 2.C语言中的关键字不能成为标识符 3.不能存在特殊符号(-> . )
-
规范:
-
见名知意,尽量用英语单词
-
特定的命名标准
-
驼峰式: showImg; (建议使用)
-
帕斯卡:ShowImg (大驼峰)
-
匈牙利命名: 有特定的前缀
i_num i前缀表明是int类型
g_num g前缀表明是全局变量
-
-
-
-
C语言数据类型
-
整型 int
-
浮点数
- float
- double
-
字符型
- char
-
-
注释: 20% 养成注释的习惯 初始化的习惯
-
// 单行注释
//这是入口函数 int main() { return 0; //这是返回值 }
-
/**/
/* 这是一个程序 */ /****************************************** * 这是一个程序 * 这是多行注释 *******************************************/
-
-
变量的作用域和生命周期 就近原则
-
作用域: 在此范围内变量是可以使用的
-
生命周期:变量分配内存到释放内存的时间
局部变量:由{}限定的
全局变量:没有用{}限制 ,不做初始化,默认为零,从程序的开始到结束为止
-
-
3.进制与存储
-
二进制(以下以八位为例)
-
机器码(一个数字的二进制)
-
原码(引入符号位(最高位))
- 正数:0000 0001
- 负数:1000 0001 (-1的原码)
-
反码
-
正数: 三码合一 0000 0001
-
负数: 原码符号位不变,其他位取反(0-->1 1-->0)
1000 0001 -->1111 1110 (-1的反码)
-
-
补码
- 正数:三码合一 0000 0001
- 负数:反码+1 1111 1111 (-1的补码)
-
-
计算机中只有加法没有减法
1-1: 1+(-1) 0000 0001+1000 0001 =1000 0010 -2
-
十进制数如何转换为二进制数:模二取余法
-
二进制数如何转换为十进制数
按权重相加
11111 : 10000 +1000+100+10+1
1:1
10:2
100:4
1000:8
10000:16
二进制
八进制
十六进制
5.修饰词衍生的其他数据类型
short: 短(2Byte)
long : 长
unsigned: 无符号
signed: 有符号(默认int为有符号)
注意点: 以上不能修饰实数型, short与long不能修饰字符(long double 不同的编译器做出的处理可能不同)
short int a =>short a long int a=1L =>long a =1L long还是4Byte long long 8 Byte
64位系统int还是32位
unsigned char='A'
6.C语言类型转换
-
隐式转换
-
赋值语句存在隐式转换 int size; size=1.22 -->size=1
-
函数传参
-
算术运算
-
ASCII码: 字符是用ASCII码的方式存储在内存,ASCII码就是一个整数
-
-
强制转换、
- 强制转换语法:(要转换的类型)要转换的东西;
- size=(int )1.33
- char 可以看成一个字节的int来使用 0~ 127,超出的话接着是-128 ~0 ~127
强调一下: C语言 在运算的时候,需要保持类型一致性原则
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律