初学c语言需要注意的那些知识点!
在这一个星期的c语言的学习中,主要是学习了c语言的数据类型和变量、语法规则、以及运算符的使用操作。
首先,还是对c语言得先有个了解,c语言的优势有很多 :
1,接近底层的编程语言 可以直接在设备上编写c语言程序
2,效率高 效率接近于汇编语言
3,功能强大 虽然编程效率不高,但基本上所有的都支持c语言
4,可以写操作系统 unix操作系统
5,灵活 但是使用起来复杂
6,兼容性好,方便移植
数据类型和变量:
c语言中的基本数据类型:
字符类型 char 1字节 [-128,127] ([-2^7,2^7-1)
无符号字符类型 unsigned char 1字节 [0,255] ([0,2^8-1])
短整数类型 short(int) 2字节 [-32768,32767] ([2^15,2^15-1])
unsigned short (int) [0,65535] ([0,2^16-1])
整数类型 int 4字节 [-2^31,2^31-1]
unsigned int [0,2^32-1]
长整数类型 long (int) 4字节/8字节 [-2^31,2^31-1]
unsigned long (int) [0,2^32-1]
长长整数类型 long long (int) 8字节 [-2^63,2^63-1]
unsigned long long(int) 8字节 [0,2^64-1]
单精度浮点类型 float 4字节 +-3.4*10^38
双精度浮点类型 double 8字节 +-1.79*10^308
在学习基本数据类型的时候,也有许多需要注意的点:
1:为什么要分数据类型?
①. 节约内存 ②. 方便访问
但是,数据类型同样也带来了一些问题:在计算的过程中带来了许多麻烦和隐藏的问题。
2:计算机是怎么来存储数据:只能表示 0 和 1
3:计算机内存的最小单位:字节
1字节(byte) = 8位(bit)二进制位
1T = 1024G、1G = 1024MB、1MB = 1024KB、1KB = 1024B、1B = 1 byte
1字节 :
不表示正负,能够表示的范围是 0~255 区间范围
表示正负, -128,127
4:计算机中用补码的形式来存储
5:原码:二进制
正数的原码 反码 补码都是一样的
负数的原码 等于 其正数的原码,最高位变1
负数的反码 等于 其原码,符号位不变,其他按位取反
负数的补码 等于 符号位不变,反码加1
用原码进行计算时,会出现问题
用补码来计算时,不会出现问题
用反码能够解决一些负数运行的问题,但解决不了所有的
移码: 浮点数 + 指数 + 127
6:字符类型:char
(1)ASCII码: (American Standard Code for Information Interchange)美国信息交换标准代码
数值 字符
48 ‘0’
65 ‘A’
97 ‘a’
0 ‘\0’
(2)在c语言中,一个汉字不是一个字符,是一个字符串 ‘中’ 一个字符保存不下一个中文汉字
(3)在c语言中, 字符用 单引号 ‘’ 来表示
’ ’ 空格字符
‘a’ 字符a
‘8’ 字符8
8 0000 1000
‘8’ 0011 1000
(4)转义字符:
‘\n’ 换行
‘\r’ 回车
‘\t’ 水平制表符
‘\v’ 垂直制表符
‘\a’ 响铃
‘\b’ 退格
‘\0’ NUL 字符串的结束标志
‘\’ 表示反斜杠字符 '\表示转义字符
‘\f’ 换页
‘\060’ 字符0 (‘0’) 八进制表示
‘\x61’ 字符A (‘A’) 十六进制表示
(5)编码:gbk utf-8
Unicode:为每个国家的每种语言设定了唯一的二进制编码
utf-8 中文汉字 2-4字节 (010 - 2字节 、 011 - 3字节 、 1xx - 4字节)
gbk 中文汉字 2字节 65536
(6)把一个整数赋值给char类型变量,只会把整数最低8个二进制(最低一个字节)数据赋值给char变量
(7)char : 如果要以%d %u的形式输出,要进行扩展,补最高位(符号位)
char变量赋值给int/unsigned 时 ,扩展位 补最高位(符号位)
unsigned char :如果要以%d %u的形式输出,要进行扩展,补0
unsigned char变量赋值给int/unsigned 时 ,扩展位 补0
7:printf :格式化输出
(格式化:按什么样的格式显示内存中的数据)
%c 以char形式显示
%d 以int形式显示
%u 以unsigned int形式显示(printf("%u",d) 无符号数输出)
%hd short
%hu unsigned short
%ld long int
%lu unsigned long int
%f float
%lf double
%g float/double 不显示多余的0
%e 科学计数的形式显示浮点
%E
%o 八进制
%x 十六进制
%p 地址形式显示
%s 字符串
%% 输出一个% %是格式占位符的开始
8:变量:用于储存数据
(1)变量的定义、声明:
变量只有定义之后 ,才能使用。
在同一个作用域下,变量不能重复定义(同一作用域下不能声明同名变量)
一条语句中可以定义多个变量,变量之间用逗号隔开即可。
( 数据类型 变量名1 变量名2;)
( 数据类型 变量名;)
变量名:成为标识符
标识符规则:
①:由字母、数字、_字符 组成
②:不能以数字开头
③:不能和关键字冲突
c89有32个关键字,c99补充了5个,c11补充了一些
(2)变量的初始化(赋值):
①:局部变量定义之后如果不初始化,这个变量里面保存的是垃圾值(随机量)
②:定义变量的本质:其实是程序分配了一块内存,通过变量名可以操作该内存区域的值,所以在编程的过程中,如果不确定该变量需要保存什么数据,一般初始化为0
9:C语言的语法规则
(1)所有的标识符 只能是英文字符 代码中不能出现中文字符(除非用""引入)
(2)语句以 ; 结尾
(3)一般一行放一条语句
(4)语句块是以 {} 为边界
(5)用缩进来表示语句块的结构
(6)用空行 和 空格 来保持书写优美
(7)标识符遵守 驼峰式 下划线的命名方式
驼峰式:首单词小写,后面其他单词首字母大写,其余小写
下划线:单词之间用 _ 连接
(见名知义 、 见名知类型)
(8)保持一种编程风格就行
(9)注释:注释的内容不会被编译,也不会被执行
// 单行注释
/*
多行注释
(不能嵌套注释)
*/
写项目过程中必须要有注释,越详细越好
注意:一般不要删代码,注释就行了