【理论积累】C语言基础理论知识【第一版】
第一个程序
#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语言函数及其参数中
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
C语言控制结构
- if...else结构的运行原理
- while循环流程图
- do...while循环结构执行流程图
- 关键字break常被用于循环功能代码中,其主要作用是调处并终止循环结构的运行
- 关键字continue的具体功能比较丰富,即终止用户所指定的本次循环,但不会跳出循环结构,从而可以继续执行下一个循环
- switch...case开关结构流程图
- 转义字符是指C语言中能够实现特定功能的输出控制字符
- 数据类型输出控制符包括格式控制符和格式字符
- 常用的格式字符
函数
- 函数包括参数和返回值
- 参数是用于向函数内部传递数据的
- 返回值是将函数处理后的结果传递到函数外部
- 函数在定义时,也需要具有一定的定义格式。在定义格式中,包含函数的名称、参数类型、参数个数和函数返回值
返回类型 函数名(参数类型 参数1,参数类型 参数2);//函数定义
- 函数返回值和参数类型的具体取值及其意义
- 根据函数参数的使用位置不同,其种类有实参和形参两种
- 实参是在用户调用函数时,传递给函数的实际参数
- 形参则是在函数定义时,所设置的形式参数,该类型的参数并不具有实际意义,只是一个标识
- 用户使用函数形参实现自定义函数的定义
void add(int a,int b);//自定义函数
- 当然,用户也可以在函数定义时,只使用数据类型作为函数形参
void add(int,int);//使用数据类型作为函数形参
- 函数的返回值可以将函数内部的运算结果等变量值传递到函数外部
- 函数返回值就是函数内部与外部通信的一个桥梁,而函数参数是函数外部与内部通信的桥梁
- 变量的作用域和生存周期是其定义位置所在的一对大括号{}之内
- 根据自定义函数的调用位置和调用顺序的不同,其调用方式也会有所不同
- 自定义函数的直接调用,优点在于调用简单、方便、直观。但是,在需要多次调用函数实现一个功能的时候,用户就需要显示地多次调用该函数,这种调用方式将容易造成代码量的增加以及程序运行的不可控制性
- 函数的递归调用是指在一个自定义函数中再嵌套使用相同函数,以实现循环调用相同函数的功能
【理论积累】C语言基础理论知识【第一版】的更多相关文章
- java基础理论知识的一些总结
在学习Java初期,由于我们是刚开始接触Java,我们不仅需要牢牢掌握Java的基础理论知识,来为我们后面对Java更深层次的学习打好基础,而且我们需要养成编程人的思想习惯.来我们一起来探索Java基 ...
- OC语言基础知识
OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...
- 李洪强iOS开发之OC语言基础知识
OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...
- 01-C语言基本知识
目录: 一.C语言基本知识 二.C语言概述 回到顶部 一.C语言基本知识 1 语言背景 1946年,美国冯·诺依曼第一台计算机. 四大部分:中央处理器(控制器,运算器),存储器,输入设备,输出设备. ...
- Golang 入门系列(三)Go语言基础知识汇总
前面已经了 Go 环境的配置和初学Go时,容易遇到的坑,大家可以请查看前面的文章 https://www.cnblogs.com/zhangweizhong/category/1275863.html ...
- 用几分钟了解R语言入门知识
第一篇——用几分钟了解R语言入门知识 第二篇——用几分钟了解R语言入门知识(续) 关于数据分析学习笔记的计划(以及目录)
- ios开发学习笔记001-C语言基础知识
先来学习一下C语言基础知识,总结如下: 在xcode下编写代码. 1.编写代码 2.编译:cc –c 文件名.c 编译成功会生成一个 .o的目标文件 3.链接:把目标文件.o和系统自带的库合并在一起, ...
- C语言基础知识-数组和字符串
C语言基础知识-数组和字符串 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数组概述 在程序设计中,为了方便处理数据把具有相同类型的若干变量按有序形式组织起来的方式我们称为数组 ...
- C语言基础知识-程序流程结构
C语言基础知识-程序流程结构 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.概述 C语言支持最基本的三种程序运行结构:顺序结构,选择结构,循环结构. 顺序结构:程序按顺序执行, ...
随机推荐
- 使用 Spring 框架的好处是什么?
轻量:Spring 是轻量的,基本的版本大约 2MB.控制反转:Spring 通过控制反转实现了松散耦合,对象们给出它们的依 赖,而不是创建或查找依赖的对象们.面向切面的编程(AOP):Spring ...
- IOC 的优点是什么?
IOC 或 依赖注入把应用的代码量降到最低.它使应用容易测试,单元测试不再需 要单例和 JNDI 查找机制.最小的代价和最小的侵入性使松散耦合得以实现.IOC 容器支持加载服务时的饿汉式初始化和懒加载 ...
- Java 死锁以及如何避免?
Java 中的死锁是一种编程情况,其中两个或多个线程被永久阻塞,Java 死锁情况 出现至少两个线程和两个或更多资源. Java 发生死锁的根本原因是:在申请锁时发生了交叉闭环申请.
- 详解BI系统中的任务调度
任务调度是一个通用的计算机概念,可以简单地理解为计算机基于一定时间频率,自动执行一项进程任务.任务调度是操作系统的重要组成部分,Windows系统中的定时任务和Linux的Crontab都是常用的系统 ...
- 小小标签,强大功能——深藏不露的 <input>
<input> 虽只是一个看似简单的 HTML 表单元素,但它这么一个单一的元素,就有多达 30 多个属性(attribute),相信无论你是个小菜鸟还是像我一样写了 15 年 HTML ...
- 大数据学习之路之ambari配置(二)
按照网上的教程配置,发现配置到hadoop虚拟机内存就开始不够了,心累
- JavaScript实现有农历和节气节假日的日历
运行效果: 源代码: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content ...
- SpringBoot利用自定义注解实现通用的JWT校验方案
利用注解开发一个通用的JWT前置校验功能 设计的预期: 系统中并不是所有的应用都需要JWT前置校验,这就需要额外设计一个注解Annotation来标识这个方法需要JWT前置校验.例如: @GetMap ...
- 在 Docker 上快速运行 Apache Airflow 2.2.4
Docker 安装 Apache Airflow 参考资料 Running Airflow in Docker 安装依赖 Docker Engine Docker Composite 快速运行 Apa ...
- Python学习笔记.md
Python学习笔记 1.变量类型 x=5 int x="ss" string x='a' string x=True bool #查看变量类型 type(x) 2.字符串常用操作 ...