初识c语言

  • 前言
  • 什么是c语言
  • 第一个C语言程序
  • 数据类型
  • 什么是注释
  • 字符串
  • 转义字符
  • 常量、变量
  • 选择语句
  • 循环语句
  • 函数
  • 数组
  • 操作符
  • 关键字
  • 指针
  • 结构体
  • 总结

前言

欲戴皇冠,必承其重。
因为想构建一个C语言的详细知识框架,所以此篇是第一篇框架篇。(后期会不断更新)
由于笔者在学习C语言过程中碰过一道道的坎,跳过很多坑。为了及时巩固学过的知识和提高自己。在此以后把学习经验和知识点分享给大家。希望大家可以看到知识点和经验之谈,也能回忆起学过的知识,也能更好的提升自己。

  • 庖丁解牛

    • 对于正在学习C语言的朋友来说,我认为学C语言应该先了解其大概框架,然后再把框架慢慢分解为一个个小的目标,然后朝着这个目标一步一个脚印,慢慢实现C语言从入门到精通,否则在学习的过程很容易被劝退。
  • 好记性不如烂笔头
    • 在学习C语言的过程中,知识很多,说他碎吧,他也不碎。说他不碎,他也非常碎。但是只要我们经常总结,及时记笔记,构架一个知识框架,他就不碎。他就是一个完整的体系。这样我们就会在学习的过程中事半功倍。
  • 最后, 多独立调试代码
    • 遇见问题就要自己调试,多尝试几回,不仅会使你的印象深刻,而且调试成功后那种雀跃的感觉,只有你尝试了才知道!

什么是c语言

  • 新人在刚接触c语言的时候对c语言一点都不了解。我们来举个例子,我们学习英语是把英语当做一种和外国人交流的东西。那么c语言就是我们和计算机交流的东西。毕竟计算机听不懂我们高级动物人所说的话。
  • c语言是一门面向过程的语言,不同于java等面向对象的语言
  • c语言是一门计算机语言,广泛用于底层开发。
    • 几乎所有的操作系统都是用C语言编写的
    • 几乎所有的计算机底层软件都是用C语言编写的
    • 几乎所有的编辑器都是C语言编写的

第一个C语言程序

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

  • 下面我们分析一下这第一个程序

    • main函数是程序的入口
    • 一个工程有且只有一个main函数
    • ; 分号是语句的结束标志
    • 输出内容是一个比较复杂的操作, 但系统提前定义好了一个专门用于输出内容的函数叫做printf函数,我们只需要执行系统定义好的printf函数就可以往屏幕上输出内容。用 函数名称+圆括号的形式来执行
    • return 0; 代表函数执行完之后返回整数0
    • {} 代表这个程序的范围
    • () 代表这是一个函数
    • int 代表函数执行之后会返回一个整数类型的值

数据类型

  • 为什么会有这么多的数据类型?

    • 存在这么多的类型,其实是为了更加丰富的表达生活中的各种值。
  • C语言中有4大类数据类型:基本类型、构造类型、指针类型、空类型
  • 下面先讲解一下基本类型
char 字符数据类型 1byte
short 短整型 2byte
int 整形 4byte
long 长整型 4byte
long long 更长的整形 8byte
float 单精度浮点数 4byte
double 双精度浮点数 8byte
  • 一个变量所占用的存储空间,和***定义变量时声明的类型***以及***当前编译环境***有关,我们这说的是32位电脑

什么是注释

  • 代码中有不需要的代码可以直接删除,也可以注释掉
  • 代码中有些代码比较难懂,可以加一下注释文字
  • 注释有两种风格:
    C语言风格的注释 /xxxxxx/
    缺陷:不能嵌套注释
    C++风格的注释 //xxxxxxxx
    可以注释一行也可以注释多行

字符串

  • 什么是字符串?
“hello world”
  • 这种由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal),或者简符串
  • 注:字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串内容。``
#include <stdio.h>
//下面代码,打印结果是什么?为什么?(突出'\0'的重要性)
int main()
{char arr1[] = "bit";char arr2[] = {'b', 'i', 't'};char arr3[] = {'b', 'i', 't', '\0'};printf("%s\n", arr1);printf("%s\n", arr2);printf("%s\n", arr3);return 0;
}
  • 字符串要以%s来输出。

转义字符

  • 加入我们要在屏幕上打印一个目录: c:\code\test.c
    我们该如何写代码?
#include <stdio.h>
int main()
{printf("c:\code\test.c\n");return 0; }
  • 实际运行结果如下
  • 是不是和你们想的大相庭径
  • 这里就不得不提一下转义字符了。转义字符顾名思义就是转变意思。
  • 下面看一些常用的转义字符。
\? 在书写连续多个问号时使用,防止他们被解析成三字母词
\\ 用于表示一个反斜杠,防止它被解释为一个转义序列符
\ddd ddd表示1~3个八进制的数字
\xdd dd表示2个十六进制数字
\n 换行
\t 水平制表符
\v 垂直制表符
  • 所以说想输入一个斜杠,就必须输入两个斜杠,以此类推,后面的意思和这个相同。

常量、变量

  • 什么是变量?什么是常量?

    • 生活中的有些值是不变的(比如:圆周率,性别(?),身份证号码,血型等等)
    • 有些值是可变的(比如:年龄,体重,薪资)。
    • 不变的值,C语言中用常量的概念来表示,变得值C语言中用变量来表示。
  • 定义变量的方法
    • 格式1: 变量类型 变量名称 ;
    • int age = 150;
      float weight = 45.5f;
      char ch = ‘w’;
  • 为什么要定义变量?
    • 任何变量在使用之前,必须先进行定义, 只有定义了变量才会分配存储空间, 才有空间存储数据
  • 变量的分类
    • 全局变量
    • 局部变量
  • 变量的使用
#include <stdio.h>
int main()
{int num1 = 0;int num2 = 0;int sum = 0;printf("输入两个操作数:>");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("sum = %d\n", sum);return 0;}
  • 变量的作用域和生命周期
  • 作用域(scope),程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用

    而限定这个名字的可用性的代码范围就是这个名字的作用域。
  1. 局部变量的作用域是变量所在的局部范围。
  2. 全局变量的作用域是整个工程。
  • 生命周期
    变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
  1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
  2. 全局变量的生命周期是:整个程序的生命周期。
  • 常量

    • 有些同学会以为常量很简单,我在这里说一下,常量也分很多种。
    • C语言中的常量分为以下以下几种:
      • 字面常量
      • const 修饰的常变量
      • #define 定义的标识符常量
      • 枚举常量
        这里我就不细细说明了,毕竟笔者也是初学者,等以后一个个模块慢慢说来。

选择语句

  • 人生要面临很多的选择,比如高中生需要面临高考,选专业。而大学生要面临毕业是要找工作,还是去考研。
  • 我在b站有个up那里听过这样的一段话,感受颇深
    • 如果你好好学习,校招时拿一个好offer,走上人生巅峰。
    • 如果你不学习,毕业等于失业,回家卖红薯。
    • 这就是选择!
  • 选择语句有两种
    • if语句
    • switch语句(后期更新)
  • if代码实例如下
#include <stdio.h>
int main()
{int coding = 0;printf("你会去敲代码吗?(选择1 or 0):>");scanf("%d", &coding);if(coding == 1){prinf("坚持,你会有好offer\n");}else{printf("放弃,回家卖红薯\n");}return 0;}

循环语句

  • 我们生活中,或者说在成长中,时不时的都在循环过一件事。但也有循环终止的那个时刻。比如小孩在1岁喝奶粉,2岁也是,3岁也是,你一直在喝奶粉。但当有一天你四岁了,你就不喝奶粉了,你就终止这个循环了。
  • C语言中如何实现循环呢?
  • C语言一共有三种循环语句
    • while语句
    • for语句(后期讲)
    • do while(后期讲)
//while循环的实例
#include <stdio.h>
int main()
{printf("喝奶粉\n");int age = 0;while(age<=3){age++;printf("喝奶粉\n");}if(age>3)printf("吃馒头\n");return 0;}

*当然,这就是最简单的循环语句了。

函数

  • 光是听名字,就会有些人看见这两个字望而生畏。可能会联想起来我们数学学的函数,但是这个C语言的函数和我们数学中的函数还是大有不同的。
  • 函数的基本概念
    • C源程序是由函数组成的

    • eg:我们前面学习的课程当中,main函数+scanf函数+printf函数+逻辑代码就可以组成一个C语言程序。

    • C语言不仅提供了极为丰富的库函数, 还允许用户建立自己定义的函数。用户可把自己的算法编写成一个个相对独立的函数,然后再需要的时候调用它 。

    • 由于内容很多,我们今天就是初次认识一下C语言,在这里我就不娓娓道来了。后期再详细。

    • 下面是一个详细的代码写成函数的例子。

#include <stdio.h>
int main()
{int num1 = 0;int num2 = 0;int sum = 0;printf("输入两个操作数:>");scanf("%d %d", &a, &b);sum = num1 + num2;printf("sum = %d\n", sum);return 0; }
上述代码,写成函数如下:
#include <stdio.h>
int Add(int x, int y) {int z = x+y;return z; }
int main()
{int num1 = 0;int num2 = 0;int sum = 0;printf("输入两个操作数:>");scanf("%d %d", &num1, &num2);sum = Add(num1, num2);printf("sum = %d\n", sum);return 0;}

数组

  • 什么是数组?

    • 在C语言中,数组属于构造数据类型,简单的来说,就是用来存储一组数据。
    • C语言中给了数组的定义:一组相同类型元素的集合。
  • 数组的定义
      int arr[10] = {1,2,3,4,5,6,7,8,9,10};//定义一个整形数组,最多放10个元素
  • 数组的下标(数组的易错点)

    • C语言规定数组的每个元素都有一个下标,下标是从0开始的。
      数组可以通过下标来访问的。下标是从0开始的。下标是从0开始的。重要的事情说三遍。
  • 数组的使用
#include <stdio.h>
int main()
{int i = 0;int arr[10] = {1,2,3,4,5,6,7,8,9,10};for(i=0; i<10; i++){printf("%d ", arr[i]);}printf("\n");return 0;}

操作符

  • 操作符分为一下几类。
  • 我们先来简单讲一个算数操作符。
    • 算术操作符
    • 移位操作符
    • 位操作符
    • 赋值操作符
    • 单目操作符
    • 关系操作符
    • 逻辑操作符
    • 条件操作符
    • 逗号表达式
算数操作符
+ 加法操作符
- 减法
* 乘法
/ 除法
% 求余操作符(也称为取模)

关键字

  • 常见关键字

  • 以下是经常看见的关键字,定义变量名不能使用关键字

  • 什么是关键字?

    • 关键字,也叫作保留字。是指一些被C语言赋予了特殊含义的单词
    • 关键字注意点:
      因为关键字在C语言中有特殊的含义, 所以不能用作变量名、函数名等
      C语言中一共有32个关键字

指针

结构体

  • 上面两个以后慢慢将来,内容比较多,也比较难。相信对于C语言初学者也有比较大的难度,所以分到以后我们慢慢介绍。

总结

  • 如果你觉得文章对你有一些帮助。点赞,收藏是对我最大的鼓励。

C语言从入门到精通(第一期之结构框架)相关推荐

  1. c语言从入门到精通第四版电子书_C语言从入门到精通(吐血分享)4.pdf

    C语言从入门到精通(吐血分享)4 成功! 结构体.链表.文件 数组.字符串 函数.指针 三种结构化程序设计 三种数据类型.六大表达式 一.简单的程序 #include 数学函数 命令行 main() ...

  2. c语言从入门到精通ppt,C语言从入门到精通第1章.ppt

    C语言从入门到精通第1章 1.2.2 认识Turbo C 2.0 1.2.2 认识Turbo C 2.0 ⑴ 菜单栏:包括[File](文件)菜单.[Edit](编辑)菜单.[Run](运行)菜单.[ ...

  3. 【C语言】C语言从入门到精通|第1章 C语言概述—自学笔记

    前言 本篇是本人自学C语言过程进行编辑的文章笔记,如果对大家有用,点赞加收藏吧. 注:笔记基于<C语言从入门到精通(第3版)>明日科技编著,清华大学出版社出版的. 目录 一.C语言发展史 ...

  4. C 语言从入门到精通教程(2021 )

    C 语言从入门到精通教程(2021年) 文章目录 计算机常识 什么是计算机程序 ? 什么是计算机语言 ? 常见的计算机语言类型有哪些 ? 什么是C语言? C语言历史 C语言标准 C语言现状 为什么要学 ...

  5. 【带你上手云原生体系】第二部分:Go语言从入门到精通

    [带你上手云原生体系]第一部分:文章简介 及 云原生思维概览 [带你上手云原生体系]第二部分:Go语言从入门到精通 [带你上手云原生体系]第三部分:Docker从入门到精通 [带你上手云原生体系]第四 ...

  6. oracle入门语,Oracle SQL 语言从入门到精通

    Oracle SQL 语言从入门到精通 作者:网络 佚名 2005-10-27 00:00 评论 分享 [IT168 服务器学院]数据库对象包括表.视图.索引.同义词.簇.触发器.函数.过程.包.数据 ...

  7. 清华大学出版——C语言从入门到精通(第4版)

    <C语言从入门到精通(第4版)>是清华大学出版社出版的图书,该书从初学者的角度出发,以通俗易懂的语言,丰富多彩的实例,详细介绍了使用C语言进行程序开发需要掌握的各方面知识. <C语言 ...

  8. python从入门到精通清华_java从入门到精通(第5版)+python从入门到精通+c语言从入门到精通 全3册 清华大学出版社...

    <JAVA从入门到精通(第5版)> <Java从入门到精通(第5版)>从初学者角度出发,通过通俗易懂的语言.丰富多彩的实例,详细介绍了使用Java语言进行程序开发需要掌握的知识 ...

  9. Python3 入门100例,从入门到精通第一步

    Python3 入门100例,从入门到精通第一步 原题地址:http://www.runoob.com/python/python-100-examples.html 来源于github开源项目

  10. 视频教程-R语言从入门到精通系列之新手上路视频课程-其他

    R语言从入门到精通系列之新手上路视频课程 WOT峰会讲师,中国R语言大会讲师,数据分析师,8年以上数据挖掘建模工作实战经验,部分研究成果获国家专利,攥写<R语言与数据挖掘>.<数据先 ...

最新文章

  1. Docker 从入门到精通(建议收藏的教程)
  2. Python 环境搭建
  3. Python进阶之“属性(property)”详解
  4. 华为的mysql数据库如何登陆_怎么登陆mysql数据库
  5. javascript 总结(常用工具类的封装,转)
  6. 累积分布函数_正态累积分布函数的上下界和两个近似初等函数
  7. Ansible11:变量详解
  8. left和offsetLeft
  9. tcl之变量-简单变量
  10. 凸优化第六章逼近与拟合 6.3 正则化逼近
  11. 托福考试前你需要知道哪些事情
  12. Simulink代码生成应用教程
  13. M3DGIS三维电子沙盘大数据人工智能元宇宙地理信息系统第5课
  14. HCSE设计知识点50个
  15. 小程序-e.detail.value动态获取input的value
  16. jar包 运行内存分配情况
  17. 图解IFRS9 金融工具(6)ECL预期减值
  18. 康奈尔大学计算机硕士要求,申请康奈尔大学计算机硕士需要什么条件呢
  19. 手写简易版链表及原理分析
  20. 人体信号基线漂移问题

热门文章

  1. 爬虫学习之下载韩寒博客
  2. 海信信号机后台服务器配置,海信自适应交通信号控制系统解决方案
  3. 机械工程设计分析和Matlab应用(PDF版)
  4. MySQL的NoSQL扩展插件HandlerSocket
  5. 什么是SMART原则?
  6. TP-LINK TL-WR845N和腾达W311R怎么设置wds桥接
  7. 制作U盘免疫病毒文件夹
  8. 扫盲篇:数字签名、数字证书、域名劫持、域名欺骗
  9. 车票预订系统 搭建服务器,火车票网上订票系统的设计与实现.doc
  10. ubuntu14.04编译ffmpeg的过程