博客推行版本更新,成果积累制度,已经写过的博客还会再次更新,不断地琢磨,高质量高数量都是要追求的,工匠精神是学习必不可少的精神。因此,大家有何建议欢迎在评论区踊跃
#include <stdio.h>
int main(){
printf("Hello World");
}
变量与常量
- 变量类型:整型【int】、字符型【char】、单精度【float】和双精度【double】
- 整型变量
- 整型的数据在32位操作系统,所占的计算机内存位数为8位
- 该类型变量的定义格式如下
int 变量名=初始化值;//定义并初始化整型变量
- 在整型定义格式中、变量类型标识符int必须置于变量名之前
- 用户定义整型变量时,也可以不用对其进行初始化操作
- 当需要定义多个整型变量时,可以用,将各个变量名隔开
int a,b,c;//定义整型类型的数据a,b,c
int m=10,n=10;//定义并初始化整型变量m,n
- 字符型:
- 通常是用于定义字符型数据的
- 该类型的变量不仅可以存储单字符数据,还可以多字符数据或字符串
- 用户一般直接使用字符变量标识符char就可以定义字符变量
char变量名='初始化字符';//定义并初始化单个字符
char变量名[10]="初始化字符串";//定义并初始化字符串
- 若使用单字符数据对变量进行初始化,一定要用单引号将初始化数据括起来
- 使用字符串初始化变量时,必须将变量定义为字符数组,并且用双信号将初始化数据括起来
- 单精度
- 单精度数据类型用float表示,该类型的数据在32位操作系统中所占的计算机内存位数为16位
- 通常情况下,只有在进行科学计算时要使用单精度类型的数据
- 用户在程序中,使用单精度变量标识符float定义一个f
float f=1.2545;//定义并初始化单精度变量f
- 双精度
- 双精度数据类型用double表示
- 该类型的数据在32位操作系统中,所占的计算机内存位数为32位
- 与单精度类型的数据一样,在进行编程时,若需要进行科学计算或多位小数计算,则需要使用双精度类型的数据
- 实际编程中,变量定义应当严格遵循其命名规则
- 变量名要有良好的可读性
- 长度不宜过长
- 用户还可以使用下划线和前缀字符对变量进行标识
- 变量命名时,不能使用特殊符号作为变量名的前缀,也不能使用C语言中的关键字作为自定义变量的名称
- 局部变量是指在一些程序段中所定义的变量,其作用范围有很大的限制,一般只在一堆大括号之间有作用
- 当用户在变量定义的代码段之外调用该变量时,是不允许的
- 这也容易导致定义的变量重名或者引用未定义的变量而发生错误
- 全局变量:作用域是整个程序
- 当程序运行完毕退出时,全局变量才会被自动删除,全局变量的生命周期与程序的生命周期是相同的
- 使用全局变量时,需要根据实际情况确定全局变量的作用范围
- 使用变量:在程序中,可以使用符号=位已经定义的变量进行赋值操作
- 输出变量中的数据【printf语句】输出格式
printf("格式化字符串",变量名);//输出函数printf的原型
- 将定义的变量值输出
#include <stdio.h>//包含头文件
main()//主函数开始
{
int score=70;//定义并初始化整型变量
char name[]="学习C语言";//定义并初始化字符数组
float f=12.254545;//定义并初始化单精度变量
double dob;//定义双精度变量
dob=15.526646546542;//初始化双精度变量
printf("输出整型数据:%d\n",score);//输出各个变量值
printf("输出字符串:%s\n",name);
printf("输出单精度数据:%f\n",f);
printf("输出双精度数据:%1f\n",dob);
return 0;//程序正常结束
}
- 定义常量:常量是指变量值在初始化后,不能够再进行更改【const】
- const的使用方法
const int age=10;//定义并初始化整型常量
const char ch='C';//定义并初始化字符型常量
- 实际上,关键字const还可以用于C语言函数及其参数中
- 该运算符使用=进行标识
变量标识符=变量初始化值;//使用赋值运算符初始化变量
- 算数运算符
- 加法运算符:实现两个数据之间的加法运算操作
数据1+数据2;//加法运算符的使用格式
- 在使用格式中,数据1和数据2的类型必须是相同的。否则,必须通过强制类型转换将两个数据的类型转换成相同类型以后,才能够使其计算的结果正确。
- 减法运算符:实现两个数据之间的减法运算操作
数据1-数据2;//减法运算符的使用格式
- 乘法运算符:实现两个数据的乘法运算
数据1*数据2;//乘法运算符的使用格式
- 除法运算符:使用符号/标识,表示计算两个数据之间的商
商=数据1/数据2;//除法运算符使用格式
- 逻辑运算符:实现数据间的逻辑运算操作
- 逻辑与和逻辑或的运算规则
- 逻辑非的运算规则
- 关系运算符:两个表达式或者变量进行比较
- 大于(>)
- 小于(<)
- 大于等于(>=)
- 小于等于(<=)
- 不等于(!=)
- 等于(==)
- 三目运算符:唯一一个有三个变量同时参与运算的运算符
<表达式1>?<表达式2>:<表达式3>//三目运算符使用格式
- 表达式1表示三目运算符的运算条件
- 程序将该运算条件的真假,对后面的取值进行选择
- 如果表达式1的值为真,则三目运算符的运行结果为表达式2,否则运算结果将为表达式3
- 位运算符:针对每个二进制数据位
- 按位与(&)
- 按位或(|)
- 按位异或(^)
- 左移(<<)
- 右移(>>)
- 位运算符具体作用
- 单目运算符:该运算符只被用于单个数据的运算,参与运算的数据只有一个
- 前置单目运算符是指运算符在数据之前,即使用格式运算符运算数据
- 后置单目运算符:常用的前置单目运算符也可以将运算符放到运算数据之后,作为后置单目运算符使用
- scanf概述
- C语言中最为常用的标准输入函数
- 主要是从计算机的输入流中获取相应的数据,并将获取到的数据保存在用户指定的变量或者内存中
- 用户在使用函数scanf时,需要使用输入控制符控制数据的获取
int scanf(const char *format,ch);//输入函数scanf的使用原型
- 当函数调用成功时,将返回获取到数据的个数
- 参数format表示了格式控制符,主要用于控制获取数据的类型,当然,该参数也可以是一个格式空支付的组合字符串
- 参数ch表示了一个已经定义的变量,即将获取到的数据放到该参数所指向的变量地址中进行保存
- 用户可以使用关键字include将指定的头文件包含到程序中,并且标准输入函数scanf定义和实现均包含在头文件stdio.h
#include <stdio.h>//包含相应的头文件
- 用户在包含头文件时,若头文件为系统定义的,则需要使用尖括号“<>”将文件名括起来;若头文件为自定义的,则使用双引号将文件名括起来。
- printf概述
- 参数format表示输出格式控制符,主要是控制输出字符的格式
- 参数ch表示将要输出的变量
- getchar()
- C语言中用于获取单个输入数据的功能的函数
- 当用户在程序中输入一串字符时,该函数也只能够获取到输入的第一个字符数据,而后面的字符将被省略
int getchar(void);//获取单个数据
- 如果该函数调用成功,则将返回获取到的数据;否则,将返回0
- 使用putchar()
- 该函数只能够向计算机输出设备输出一个数据,并且该函数也可以在循环结构中使用
int putchar(int c);//输出单个数据
- 在该函数,含有一个参数c,表示存放输出数据的变量标识符。如果该函数调用失败,将返回错误标识符EOF
- if...else结构的运行原理
- while循环流程图
- do...while循环结构执行流程图
- 关键字break常被用于循环功能代码中,其主要作用是调处并终止循环结构的运行
- 关键字continue的具体功能比较丰富,即终止用户所指定的本次循环,但不会跳出循环结构,从而可以继续执行下一个循环
- switch...case开关结构流程图
- 转义字符是指C语言中能够实现特定功能的输出控制字符
- 数据类型输出控制符包括格式控制符和格式字符
- 常用的格式字符
- 函数包括参数和返回值
- 参数是用于向函数内部传递数据的
- 返回值是将函数处理后的结果传递到函数外部
- 函数在定义时,也需要具有一定的定义格式。在定义格式中,包含函数的名称、参数类型、参数个数和函数返回值
返回类型 函数名(参数类型 参数1,参数类型 参数2);//函数定义
- 函数返回值和参数类型的具体取值及其意义
- 根据函数参数的使用位置不同,其种类有实参和形参两种
- 实参是在用户调用函数时,传递给函数的实际参数
- 形参则是在函数定义时,所设置的形式参数,该类型的参数并不具有实际意义,只是一个标识
- 用户使用函数形参实现自定义函数的定义
void add(int a,int b);//自定义函数
- 当然,用户也可以在函数定义时,只使用数据类型作为函数形参
void add(int,int);//使用数据类型作为函数形参
- 函数的返回值可以将函数内部的运算结果等变量值传递到函数外部
- 函数返回值就是函数内部与外部通信的一个桥梁,而函数参数是函数外部与内部通信的桥梁
- 变量的作用域和生存周期是其定义位置所在的一对大括号{}之内
- 根据自定义函数的调用位置和调用顺序的不同,其调用方式也会有所不同
- 自定义函数的直接调用,优点在于调用简单、方便、直观。但是,在需要多次调用函数实现一个功能的时候,用户就需要显示地多次调用该函数,这种调用方式将容易造成代码量的增加以及程序运行的不可控制性
- 函数的递归调用是指在一个自定义函数中再嵌套使用相同函数,以实现循环调用相同函数的功能