Skip to content

基础知识

printf函数

"%[标志][宽度][.精度][长度]类型"

printf("%d",100);
printf("%d%d%d",100,200,300);
printf("%5d",100);
printf("%-5d",100);
printf("%05d",100);
printf("%f",2.1);
printf("%.2f",3.1415926);
printf("%c",'h');
printf("%s","hello world");
格式符含义
s字符串
c字符
d十进制整数
u十进制无符号整数
o八进制整数
x十六进制无符号整数
X十六进制无符号整数
f浮点数
e科学计数法
E科学计数法
p指针
标志符含义
-左对齐
+显示正负号
0数字前面补0
空格显示正数时,前面补空格,负数时,前面补-
#显示八进制时,前缀加0
显示十六进制数时,前缀加0x或0X

scanf函数

int a;
float b;
char c;
scanf("%d",&a);
scanf("%f",&b);
scanf("%c",&c);
字符含义
0x20空格
\t制表符
\n换行符
\v垂直换行符
\f换页符
\r回车符

关键字

C语言中具有特殊含义和固定功能的预定义标识符。 关键字必须小写。

标识符

程序中用来命名变量、函数、数组、结构体等程序实体的自定义名称。

  • 只能由字母、数字、下划线组成
  • 不能包含除下划线以外的其它特殊字符串
  • 不能以数字开头
  • 不能是C语言中的关键字
  • 严格区分大小写

隐式转换

  • 算数转换
  • 赋值转换
  • 输出转换

显示转换

基本数据类型

  • 整型
  • 字符型
  • 浮点型
  • 双精度浮点型

1.标识符

标识符:程序员在程序中给函数、变量等起名字就是标识符

  • 只能由字母(az、 AZ)、数字、下划线组成
  • 不能包含除下划线以外的其它特殊字符串
  • 不能以数字开头
  • 不能是C语言中的关键字
  • 严格区分大小写

2.关键字

关键字:指一些被C语言赋予了特殊含义的单词

  • 全部都是小写
  • 在开发工具中会显示特殊颜色
  • 不能用作变量名、函数名等

3.数据类型

构造类型:使用基本类型或已构造好的数据类型,进行添加,设计,构造出新的数据类型
指针类型:值为内存地址
空类型:关键字void,对函数的返回和参数限定

4.常量

常量:值在程序运行过程中不可改变的量,分为数值型常量、字符型常量、符号常量

4.1 整型常量

整型常量:直接使用的整型常数,分为长整型、短整型、符号整型和无符号整形

整型常量所需类型
10代表int类型
10l, 10L代表long类型
10ll, 10LL代表long long类型
10u, 10U代表unsigned int类型
10ul, 10UL代表unsigned long类型
10ull, 10ULL代表unsigned long long类型
八进制:以0开头,包含数字0~7
十进制:无前缀,包含数字0~9
十六进制:以0x开头,包含数字09和字母af(不区分大小写)

4.2 浮点型常量

浮点型:由整数部分和小数部分组成,分为单精度浮点数(F结尾),双精度浮点数
科学计数法:十进制小数方法
指数方式:以幂的形式表示, 以字母e或字母E后跟一个10为底的幂数

  • 字母e或字母E后面的指数必须为整数
  • 字母e或字母E前后必须要有数字
  • 字母e或字母E前后不能有空格
plain
SciNum = 123.45            //科学计数法 
SciNum = 1.2345e2          //指数方式
FloatNum = 1.2345e2F       //单精度
LongDoubleNum =123.45e-1L  //长双精度   
DoubleNum = 1234.5e2       //双精度

后缀大小写通用

4.3 字符型常量

字符型常量分为字符常量、字符串常量
字符常量:单引号内加一个字符
字符串常量:双引号内加多个字符

系统会在字符串结尾加上\0,所以字符串长度会加1

4.4 转义字符

4.5 符号常量

符号常量:用符号名代替固定的常量值

5.变量

5.1 整型变量

整型变量:存储整型数值的变量

名称数据类型占用空间取值范围
有符号短整型short2Byte-32768~32767
有符号基本整型int4Byte-2147483648~2147483647
有符号长整型long4Byte-2147483648~2147483647
有符号短整型unsigned short2Byte0~65535
无符号基本整型unsigned int4Byte0~4294967295
无符号长整型unsigned long4Byte0~4294967295
plain
int Num1 = 1;                 //定义有符号基本整型
unsigned Num2 = 2;            //定义无符号基本整型
short Num3 = 3;               //定义有符号短整型
unsigned short Num4 = 4;      //定义无符号短整型
long Num5 = 5;                //定义有符号长整型
unsigned long Num6 = 6;       //定义无符号长整型

5.2 浮点型变量

浮点型变量:存储浮点型数值的变量

名称数据类型占用空间取值范围
单精度类型float4Byte
双精度类型double8Byte
长双精度类型long double8Byte
plain
float Num1 = 1.23f;           
double Num2 = 1.23;
long double Num3 = 1.23;

5.3 字符型变量

字符型变量:将一个字符常量存储到一个字符变量中

plain
char a1='a'      
char a2=97;

6.变量的存储类别

6.1 静态存储与动态存储

静态存储:程序运行时为其分配固定的存储空间
动态存储:程序运行时根据需要动态分配空间

6.2 auto变量

auto:动态变量,定义一个局部变量为自动

6.3 staticus变量

static:静态变量

6.4 register变量

register:寄存器存储类变量,把局部变量指定存放在寄存器中,而不是内存中

6.5 extern变量

extern:外部存储变量

plain
//文件1
#include<stdio.h>
int main()
{
    extern int i;
    printf("%d\n",i);
    return 0;
}
plain
//文件2
#include<stdio.h>
int i = 100;

7.混合运算

不同类型之间进行混合运算,要先转换为同一类型

plain
#include<stdio.h>
int main()
{
    int a = 1;
    char b = 'A';
    float c = 2.5f;
    double result = a+b+c;
    printf("%f",result);
    return 0;
}