您现在的位置是:首页 >技术交流 >C语言-学习之路-01网站首页技术交流
C语言-学习之路-01
C语言学习之路-01
目录
关键字
C的关键字共有32个。
- 数据类型关键字(12个)
char,short,int,long,float,double,unsigned,signed,struct,union,enum,void - 控制语句关键字(12个)
if,else,switch,case,default,for,do,while,break,continue,goto,return - 存储类关键字(5个)
auto,extern,register,static,const - 其他关键字(3个)
sizof,typeof,volatile
数据类型
数据类型的作用:编译器预算对象(变量)分配的内存空间大小。
数据类型:基本类型、构造类型、指针类型。
基本类型:整型(int、short、long)、字符型(char)、实型(浮点型:单精度实型float、双精度实型double)。
构造类型:数组类型、结构类型(struct)、联合类型(union)、枚举类型(enum)。
指针类型:char * 、int * 等。
常量
整型常量:100、200、-100、0。
实型常量:3.14、0.125 、-3.123。
字符型常量:‘a’, ‘b’, ‘l’, ‘
’ 。
字符串常量:“a”,“ab”,“123456”。
变量
变量:在程序运行过程中,其值可以改变;变量在使用前必须先定义,定义变量前必须有相应的数据类型。
标识符命名规则:
1. 标识符不能是关键字
2. 标识符只能由字母、数字、下划线组成
3. 第一个字符必须为字母或下划线
4. 标识符中字母区分daxiaoxie
变量特点:变量在编译时为其分配相应的内存空间、可以通过其名字和地址访问相应内存。
声明和定义
声明:声明变量不需要建立存储空间。如:extern int a;
定义:定义变量需要建立存储空间。如:int a;
换句话来说,定义是声明的一种特例,但并不是所有声明都是定义。
int b; 它既是声明,也是定义。
extern int a; 只是声明,不是定义。
#include <stdio.h>
#include <string.h>
#define WEEK 7 //一周7天 声明了一个 WEEK变量,名字:WEEK ,值:7。一旦初始化,不可以修改。
int main(void)
{
int a; //定义一个变量,类型:int,名字:a。
const int b = 10; //定义了一个const 常量,名字:b,值:10。常量的值不能改变。
a = WEEK; //可以将WEEK的值赋值给a。
a = 111;
printf("a的值:%d
",a);
return 0;
}
进制
常见的进制有二进制、八进制、十进制、十六进制。(相互可以转换!后续再详细介绍)
**当前的计算机系统使用的基本上是二进制系统,数据再计算机中主要是以补码的形式存储的。(**原码、反码、补码后续再详细介绍。)
补码特点:
1. 对于正数、原码、反码、补码相同;
2. 对于负数,其 补码为它的反码加1;
3. 补码符号位不动,其他位求反,再加1,得到原码。
在计算机系统中,数值同一用补码来存储,主要原因:
1. 统一了0的编码;
2. 将符号位和其他位统一处理;
3. 将减法运算转变为加法运算;
4. 两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。
sizeof关键字
- sizeof不是函数,所以不需要包含任何头文件,它的功能是计算一个数据类型的大小,单位为字节。
- sizeof 的返回值为size_t;
- size_t类型在32位操作系统下是unsigned int ,是一个无符号的整数。
#include <stdio.h>
#include <string.h>
int main() {
int a = 10;
printf("a的字节长度:%d
",sizeof(a));
size_t c = sizeof(a);
printf("c:%u
",c);
return 0;
}
整型:int
打印格式 | 含义 |
---|---|
%d | 输出一个有符号的10进制int类型 |
%o | 输出8进制的int类型 |
%x | 输出16进制的int类型,字母以小写输出 |
%X | 输出16进制的int类型,字母以大写输出 |
%u | 输出一个10进制的无符号数 |
%p | 后续使用时,再介绍。 |
short、int、long、long long
数据类型 | 占用空间 |
---|---|
short(短整型) | 2字节 |
int (整型) | 4字节 |
long(长整型) | Windows为4字节,Linux为4字节(32位),8字节(64位) |
long long (长长整型) | 8字节 |
当一个小的数据类型赋值给一个大的数据类型,不会出错,因为编译器会自动转化。但当一个大的类型赋值给一个小的数据类型,那么就可能丢失高位。
字符型:char
字符型变量用于存储一个单一字符,在C语言中用char表示,其中每个字符变量都会占用一个字节。在给字符型变量赋值时,需要用一对英文半角格式的单引号(‘ ’)把字符括起来。
字符变量实际上并不是把该字符本身放到变量的内存单元中去,而是将该字符对应的ASCII编码放到变量的存储单元中。char本质就是一个1字节大小的整型。
字符变量的输入:
#include <stdio.h>
#include <string.h>
int main(void)
{
char ch;
printf("请输入ch的值:");
scanf_s("%c",&ch); //%c后面不要加
printf("ch:%c
",ch);
return 0;
}
ASCII对照表
转义字符
转义字符 | 含义 | ASCII码值(十进制) |
---|---|---|
a | 警报 | 007 |
退格(BS),将当前位置移到前一列 | 008 | |
f | 换页(FF),将当前位置移到下页开头 | 012 |
换行(LF),将当前位置移到下一行开头 | 010 | |
回车(CR),将当前位置移到本行开头 | 013 | |
水平制表(HT),(跳到下一个TAB位置) | 009 | |
v | 垂直制表(VT) | 011 |
代表一个反斜线字符 ”“ | 092 | |
’ | 代表一个单引号(撇号)字符 | 039 |
" | 代表一个双引号字符 | 034 |
? | 代表一个问号 | 063 |