目录

1.数据类型

1.1 常量与变量

1.1.1 关键字

1.1.2 数据类型

1.1.3 常量

2.运算符

2.1 运算符类型

2.2 算术运算符

2.3 赋值运算符

2.4 比较运算符

2.5 逻辑运算符

2.6 运算符优先级

3. 语句

3.1 选择结构

3.1.1 if 语句

3.1.2 switch 语句

3.2 循环结构

3.2.1 while语句

3.2.2 do-while语句

3.2.3 for 语句

3.3 跳转语句

3.3.1 break 语句

3.3.2  continue 语句

3.3.3 goto 语句

4.函数

4.1 函数的定义

4.1.1 函数定义格式

4.1.2 函数名,形参,函数体,返回值

4.2 函数的调用

4.2.1 无参函数的调用

4.2.2 有参函数的调用

4.3 函数的声明

5. 数组

5.1 概述

5.2 一维数组

5.2.1 一维数组的定义和使用

5.3 二维数组


#include <stdio.h>int main()
{printf("hello world");return 0;
}

1.数据类型

1.1 常量与变量

1.1.1 关键字

C语言关键字共有32个

· 数据类型关键字

char,short,int,long,float,double,unsigned,signed,struct,union,enum,void

· 控制语句关键字

if,else,switch,case,default,for,do,while,break,continue,goto,return

· 存储类关键字

auto,extern,register,static,const

· 其他关键字

sizeof,typedef,volatile

1.1.2 数据类型

数据类型的作用:编译器预算对象(变量)分配的内存空间大小

C语言编程最基本要明确变量的数据类型

基本类型

整型 int、short、long
字符型 char
实型(浮点型) 单精度实型 float
双精度实型 double
构造类型 数组类型
结构类型         struct
联合类型 union
枚举类型 enum
指针类型 char*  、int* 

1.1.3 常量

· 在程序运行过程中,其值不能被改变的量

  • 整型常量
  • 实型常量
  • 字符常量
  • 字符串常量

1.1.4 变量

2.运算符

2.1 运算符类型

运算符类型 作用
算术运算符 处理四则运算
赋值运算符 将表达式的值赋给变量
比较运算符 表达式之间比较,并返回一个真值或假值
逻辑运算符 根据表达式的值返回真值或假值
位运算符 处理数据的位运算
sizeof运算符 求字节数长度

2.2 算术运算符

运算符 名称
+ 正号/加
- 负号/减
*
/
% 取余
++ 前/后自增
-- 前/后自减

2.3 赋值运算符

运算符 名称
= 赋值
+= 加等于
-= 减等于
*= 乘等于
/= 除等于
%= 模等于

2.4 比较运算符

C语言比较运算中,“真”用“1”,“假”用“0”。

运算符 名称
== 关系等
!= 不等于
< 小于
> 大于
<= 小于等于
>= 大于等于

2.5 逻辑运算符

运算符 名称
!
&& 逻辑与
|| 逻辑或

2.6 运算符优先级

运算符优先级比较庞大,之后出

3. 语句

3.1 选择结构

3.1.1 if 语句

if(表达式)
{...}
else
{...}

3.1.2 switch 语句

#include <stdio.h>void main()
{char a;switch(c)
{case '1':...break;case '2':...break;......
default://如果上面的条件都不满足,则执行default...
}
}

3.2 循环结构

3.2.1 while语句

while(循环条件)
{...//循环体}

3.2.2 do-while语句

do
{
...}while(循环条件);

3.2.3 for 语句

for(表达式1;表达式2;表达式3;)
{循环体}
  1. 执行表达式1,对循环变量做初始化;
  2. 判断表达式2,若其值为真(非0),则执行for循环体中执行代码块,然后向下执行;若其值为假(0),则结束循环;
  3. 执行表达式3,(i++)等对于循环变量进行操作的语句.

3.3 跳转语句

3.3.1 break 语句

在 switch 条件语句和循环语句中都使用 break 语句:

· 当它出现在 switch 条件语句中时,作用是终止某个 case 并跳出 switch 结构。

· 当它出现在循环语句中,作用是跳出当前内循环语句,执行后面的代码。

· 当它出现在嵌套循环语句中,跳出最近的内循环语句,执行后面的代码

3.3.2  continue 语句

在循环语句中,如果希望立即终止本次循环,并执行下一次循环,此时就需要使用 continue 语句

3.3.3 goto 语句

无条件跳转

goto 语句标号

4.函数

4.1 函数的定义

4.1.1 函数定义格式

一般形式:

返回类型 函数名(形参)

{

数据定义部分;

执行语句部分

}

4.1.2 函数名,形参,函数体,返回值

1)函数名

理论上可以随便起,最好见名知意。函数名后面有(),代表这个为函数,不是普通的变量名。

2)形参列表

在定义函数时指定的形参,在未出现函数调用时,它们并不占内存中的存储单元,因此称它们是形式参数或虚拟参数,表示它们并不是实际存在的数据,所以,形参里的变量不能赋值。

在定义函数时指定的形参,必须是,类型+变量的形式。

3)函数体

花括号{  }里的内容即为函数体的内容,这里为函数功能实现的过程,与把代码写在main()函数里并无太大区别

4)返回值

函数的返回值是通过函数中的return语句获得的,return后面的值也可以是一个表达式

尽量保证return语句中表达式的值和函数返回类型是同一类型

如果函数返回的类型和 return 语句中表达式的值不一致,则以函数返
回类型为准,即 函数返回类型决定返回值的类型 。对数值型数据,可以
自动进行类型转换。
return 语句的另一个作用为中断 return 所在的执行函数,类似于
break 中断循环、switch 语句一样。
如果函数带返回值,return 后面必须跟着一个值,如果函数没有返回
值,函数名字的前面必须写一个 void 关键字,这时候,我们写代码时也
可以通过 return 中断函数(也可以不用),只是这时,return 后面不带内
容( 分号“;”除外)。

4.2 函数的调用

定义函数后,我们需要调用此函数才能执行到这个函数里的代码段。这
和 main()函数不一样,main()为编译器设定好自动调用的主函数,无需
人为调用,我们都是在 main()函数里调用别的函数,一个 C 程序里有且
只有一个 main()函数。

4.2.1 无参函数的调用

如果是调用无参函数,则不能加上“实参”,但括号不能省略。
// 函数的定义
void test()
{}
int main()
{// 函数的调用
test(); // right, 圆括号()不能省略
test(250); // error, 函数定义时没有参数
return 0;}

4.2.2 有参函数的调用

a)如果实参表列包含多个实参,则各参数间用逗号隔开。
// 函数的定义
void test(int a, int b) {}
int main()
{
int p = 10, q = 20;
test(p, q); // 函数的调用
return 0;
}
b)实参与形参的个数应相等,类型应匹配(相同或赋值兼容)。实参与形
参按顺序对应,一对一地传递数据。
c)实参可以是常量、变量或表达式,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。所 以,这里的变量是在圆括号( )外面定义好、赋好值的变量。

// 函数的定义
void test(int a, int b) {}
int main()
{
// 函数的调用
int p = 10, q = 20;
test(p, q); // right
test(11, 30 - 10); // right
test(int a, int b); // error, 不应该在圆括号里定义变量
return 0;
}

4.3 函数的声明

如果使用用户自己定义的函数,而该函数与调用它的函数(即主调函数)不在同一文件中,或者函数定义的位置在主调函数之后,则必须在调用此函数之前对被调用的函数作声明。
所谓函数声明,就是在函数尚在未定义的情况下,事先将该函数的有关信息通知编译系统,相当于告诉编译器,函数在后面定义,以便使编译能正常进行。
注意:一个函数只能被定义一次,但可以声明多次。

5. 数组

5.1 概述

在程序设计中,为了方便处理数据把具有相同类型的若干变量按有序形式组织起来——称为数组。

数组就是在内存中连续的相同类型的变量空间。同一个数组所有的成员都是相同的数据类型,同时所有的成员在内存中的地址是连续的。

通常情况下,数组元素下标的个数也称为维数,根据维数的不同,可将数组分为一维数组、二维数组、三维数组、四维数组等。通常情况下,我们将二维及 以上的数组称为多维数组。

5.2 一维数组

5.2.1 一维数组的定义和使用

· 数组名字符合标识符的书写规定(数字、英文字母、下划线)
· 数组名不能与其它变量名相同,同一作用域内是唯一的
· 方括号[ ]中常量表达式表示数组元素的个数
int a[3]表示数组 a 有 3 个元素
其下标从 0 开始计算,因此 3 个元素分别为 a[0],a[1],a[2]

· 定义数组时[ ]内最好是常量,使用数组时[]内即可是常量,也可以是变量

5.3 二维数组

二维数组定义的一般形式是:
类型说明符 数组名[常量表达式 1][常量表达式 2]
其中常量表达式 1 表示第一维下标的长度,常量表达式 2 表示第二维下标的长度。
int a[3][4];
·  命名规则同一维数组
·  定义了一个三行四列的数组,数组名为 a 其元素类型为整型,该数组的元素个数为 3×4 个
二维数组 a 是按行进行存放的,先存放 a[0]行,再存放 a[1]行、a[2]行,并且每行有四个元素,  也是依次存放的。
·  二维数组在概念上是二维的:其下标在两个方向上变化,对其访问一般需要两个下标。
在内存中并并存在二维数组,二维数组实际的硬件存储器是连续编址的,也就是说内存中只有一维数组,即放完一行之后顺次放入第二行,和一维数组存放方式是一样的。

【C语言学习】C语言入门相关推荐

  1. Go语言学习1-基础入门

    1. Go语言环境搭建及基础知识 Go语言官方网站(http://golang.org) 代码包文档网站(http://godoc.org) Go语言中文网(http://studygolang.co ...

  2. go语言学习:语言简介

    一.Go语言简介 Go语言(或 Golang) 起源于 2007 年,并在 2009 年正式对外发布.Go 是非常年轻的一门语言,它的主要目标是"兼具 Python 等动态语言的开发速度和 ...

  3. Go语言学习二 语言结构 基础语法 数据类型

    Go 语言结构 由 youj 创建, 最后一次修改 2015-09-08 Go 语言结构 在我们开始学习 GO 编程语言的基础构建模块前,让我们先来了解 Go 语言最简单程序的结构. Go Hello ...

  4. 0. Go语言学习/Go语言教程

    <Go语言学习>目录 一.开发环境准备 1 安装Go及搭建Go开发环境 2 Go跨平台编译 3 Go依赖管理及go module使用 4 使用Go module导入本地包 二.Go语言基础 ...

  5. 单片机C语言学习(菜鸟入门)

    (一) 相信很多爱好电子的朋友,对单片机这个词应该都不会陌生了吧.不过有些朋友可能只听说他叫单片机,他的全称是什么也许并不太清楚,更不用说他的英文全称和简称了.单片机是一块在集成电路芯片上集成了一台有 ...

  6. Java编程学习入门、Java语言学习、Java入门必看

    一.初识Java 1.生活中的程序: 从起床到教室上课的过程 穿衣打扮>起床>洗漱>出宿舍>>吃早餐>到教室 按照特定的顺序去完成某一件事的过程我们叫做生活中的程序 ...

  7. 511遇见易语言学习易语言常量

    简单的说,就是在程序运行时,其值不能被改变的量.是计算机将数据储存到内存中的一种方式,不变是相对于变量而言,没有绝对的不变. 一.了解常量 常量是一种标识符,它的值在运行期间恒定不变.常量是一个固定的 ...

  8. 关于c语言学习的建议

    一. 关于学习的平台: 先思考一下你是属于哪一类的: 如果你是大一刚刚开始学习的小白 1.首推的当然是B站,在首页搜索c语言会有一大批优秀的教学资源,可以添加到个人的收藏夹,方便后期学习 哔哩哔哩 ( ...

  9. 在线教育参考产品--语言学习网站

    在线教育参考产品 http://www.duolingo.com/ http://livemocha.com/ http://www.rosettastone.com/ http://www.ital ...

  10. 学习c语言未来的就业方向_语言学习的未来

    学习c语言未来的就业方向 Making quality language learning content is hard. Duolingo, which is perhaps the most p ...

最新文章

  1. mysql优化Analyze Table
  2. 【杂谈】新手如何掌握深度学习模型?赠书2本,星球券10张
  3. k8s查看节点CPU消耗情况
  4. 双粗虚线中间一条实线_马路中间有一条黄色虚线和一条实线,能超车吗?
  5. python读取mysql以html形式输出_python实现处理mysql结果输出方式
  6. 使用tinylog 1.1改进您在Java EE应用程序中的登录
  7. PHP小程序码扫码登录网站,WeAuth微信小程序实现PC网站扫码授权登录
  8. Activiti进阶(七)——排他网关(ExclusiveGateWay)
  9. 备份的sql文件乱码无法导入
  10. python常用代码大全-Python常用库大全,看看有没有你需要的
  11. 周边pd是什么意思_pd是什么意思 饭圈pd是什么意思
  12. 当贝显示服务器生病,【当贝市场】电视盒子卡顿的三大原因
  13. 前端基础篇之 CSS 世界
  14. 关于CC2541蓝牙开发板的学习笔记
  15. 用 Mixly 玩 ESP8266(ESP-01模块)之二
  16. pythonfor循环功能手工皂_轻松领悟for循环,做一款Python版手账
  17. 谈谈自己关于阅读源码的一点鄙见
  18. 简易音乐播放器(Android Studio)
  19. 使用Origin绘制边际分布曲线(Marginal distributions plots)的思路和方法
  20. tkinter教程4:控件LabelFrame和Entry

热门文章

  1. ps CS6 不能直接拖入图片的问题!!win8 系统下
  2. word怎么转pdf原格式不变?可以试试这个途径
  3. matlab将图片旋转的代码_基于Matlab的PMSM模型初探
  4. 【渝粤教育】电大中专公共基础课程作业 题库
  5. 悟空在哪里?奶妈在哪里?
  6. 微信朋友圈分享、QQ分享
  7. ORcad Capture CIS元件库管理
  8. 仿淘宝商品详情页[带有视频和图片的轮播功能]
  9. vsphere虚拟服务器备份,使用云祺虚拟机备份软件快速备份VMware vSphere虚拟机
  10. BIOS14: Hypothesis testing(假设检验)using R