C语言:基础知识

基于《C语言程序设计第四版》

简单程序解析
  1. main为函数名,每个C语言程序都必须有一个main函数。
  2. int为返回值类型。
  3. 预处理指令:inclube关键字,类似java语言中得import,导入依赖。此处为导入stdio.h库。
  4. 注释方式:“//”单行注释,“/* */”多行注释。
  5. 每行代码必须使用“;”作结束标志,否则报错。
  6. 函数总是从main函数开始执行,不管main函数的位置在哪里
//注释:简单程序
#inclube<stdio.h>
int main()
{
	printf("hello world");
	return 0;
}

函数组成:函数头、函数体“{}”
在这里插入图片描述

编译过程

源程序(test.c) —>

目标程序(test.obj):初步编译之后的程序,此时程序尚不能运行 —>

与函数库进行连接,即inclube引入依赖加载过来 ---->

获得可执行程序 test.exe
在这里插入图片描述

算法简介
算法特性
  1. 有穷性
  2. 确定性
  3. 有零个或多个输入:指在执行时需要从外界获取的必要信息
  4. 有一个或多个输出:没有输出的算法是没有意义的
  5. 有效性
算法表示
  1. 自然语言表示算法
  2. 流程图表示算法:BS传统流程图、N-S结构化流程图
  3. 伪代码表示算法
  4. 计算机语言表示
算法设计原则
  1. 自顶向下/自下而上
  2. 逐步细化/逐步积累
  3. 模块化设计
  4. 结构化编码
数据表现形式

计算机高级语言中,数据有两种表现形式:常量和变量
在这里插入图片描述
常变量和符号常量(#define)的区别:
#define是预编译指令,在预编译之后,符号常量就不存在了(置换成后面的常量了)。并且符号常量的符号是不会存储到存储单元中。但是常变量是一直存在的,存储在存储单元中。

逻辑语句
  1. if语句
    优先度: ! > && > ||
    非0为true,0为false。例:a=4,b=5; a&&b 值为1;!a||b值为1;4 && 0 || 2值为1;
if(表达式)
	语句1
else if (表达式)
	语句2
else 
	语句3
  1. 三目表达式
    表达式1?表达式2:表达式3;
  2. switch语句
    同java的switch语句,需要break。否则顺次执行。
循环语句

break跳出循环体。continue结束本次循环

//while循环语句
while( 条件语句 ){
	//do something
}
//do while语句
do{
	//do something
}while(条件语句);
//for循环for(表达式1;表达式2;表达式3)
//表达式1可以是1个也可以是多个
for(i=0;i<10;i++){
	//do something
}
函数定义

函数的调用,必须是在函数声明的后面。
函数分为内部函数和外部函数:static修饰的函数为内部函数,仅当前文件可以调用;extern修饰的函数为外部函数,其他文件也可以调用。

//无参函数
//类型名为指定函数的返回值类型
类型名 函数名(){
	//函数体
}
//void 表示空
类型名 函数名(void){
	//函数体
}

//有参函数
类型名 函数名(形式参数列表){
	//函数体
}

//空函数
//作用:可视为一个占位符,用于扩展功能之类的
类型名 函数名(){}

//数组做参数函数
//[]中可有值为指定大小,无值为不指定数组大小
//数组的参数传递也是非值传递而是引用传递
类型名 函数名(float arr[10]){
	//函数体
}

//二维数组函数
//[][]这样写是不正确的,内部数组必须指定长度
类型名 函数名(int arr[][2]){
	//函数体
}

函数的声明和定义是不同的概念:
声明:只是把函数的名字、函数类型以及形参的类型、个数和顺序通知编译系统;
定义:将完整的函数功能的确立。

函数中不可以定义函数。
函数可以递归调用。递归函数,自己调用自己时,不需要声明。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值