前言
本篇(初识C语言)主要讲述C语言的一些基础知识,后期还会更新选择语句,循环语句,函数,数组,操作符,指针,结构体等一些知识。如果有错误的地方,还请大佬多多指教,在这里先感谢各位了。
来开启我们的C语言学习之旅吧。

文章目录

  • 1.什么是C语言
  • 2.第一个C语言程序
  • 3.数据类型
  • 4.变量,常量
    • 4.1定义变量的方法
    • 4.2变量的分类
    • 4.3变量的使用
    • 4.4变量的作用域和生命周期
    • 4.5常量
  • 5. 字符串+转义字符+注释
    • 5.1字符串
    • 5.2转义字符
    • 5.3注释

1.什么是C语言

C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易
的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语 言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的
C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超 级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制 定了一套完整的美国国家标准语法,称为ANSI
C,作为C语言最初的标准。 [1] 目前2011年12月8
日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标
准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉 字编程。
C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。
其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

2.第一个C语言程序


代码解析
1.main
main为主函数,一个工程中有且仅有一个主函数,程序是从主函数中的第一行开始开始执行,执行到最后一行后程序结束。
2.printf和#include<stdio.h>
printf为一个库函数,是C语言本事提供的,。库函数是把一些常用函数进行总结并放到一个文件中,printf函数的作用是在屏幕上打印东西,当使用printf函数的时候要与头文件打声招呼,可以认为我要使用你的东西。#include<stdio.h>便实现了调用printf函数。每个库函数都对应相应的头文件,当使用某一个库函数时必须要#include<相应的头文件>。
3.int
int表示整形,放在main的前面,当程序结束的时候需要返回一个整形的数与之相对应。

3.数据类型

开始讲数据类型的时候来讲一下计算机的储存单位,计算机的最小储存单位是bit,简称‘位’,一个bit表示0或1两种状态。
Byte为字节,1Byte=8bit,可以说一个字节含有2的8次方种可能,即256种可能。

存储单位的大小关系:

下图为数据的类型:

出现这么多类型是为了更加丰富的表达生活中的各种值,也可以减小计算机内存的使用。

  • 每个数据类型的大小都是多少呢?

    使用sizeof可以来实现

:sizeof 是一个操作符,用来计算数据类型的大小,所计算出的大小单位为字节

下面我们用sizeof去实现一下

可以看到每种类型所对用的大小

  • 那么不同的数据类型如何来定义又如何来输出呢?


有的同学可能会问,输出的时候float和double都可以用%f。但是当用scanf函数是,double类型的要严格按照%lf,所以建议大家以后使用duuble类型的数据输出时,尽量使用%lf;

4.变量,常量

生活中有些值是不变的,例如一个人的性别,血型等等。但是有些值却是变化的,例如年龄,体重等等。

所以针对不变的量,在C语言中,用常量的概念来表示,变化的量则用变量来表示。

4.1定义变量的方法

int age = 150;//定义整型变量
float weight = 45.5f;//定义浮点型变量
char ch = 'w';//定义字符型变量

4.2变量的分类

1. 局部变量
2. 全局变量

include <stdio.h>
int global = 2019;//全局变量
int main()
{int local = 2018;//局部变量
//下面定义的global会不会有问题?
int global = 2020;//局部变量
printf("global = %d\n", global);
printf("local=%d",local);
return 0;
}


总结:
上面的局部变量global变量的定义其实没有什么问题
当局部变量和全局变量同名的时候,局部变量优先使用,可以理解为就近原则哈哈。

4.3变量的使用

#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;
}
//这里介绍一下输入,输出语句
//scanf
//printf

4.4变量的作用域和生命周期

作用域

作用域(scope)是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的

而限定这个名字的可用性的代码范围就是这个名字的作用域。

1. 局部变量的作用域是变量所在的局部范围。
2. 全局变量的作用域是整个工程。

生命周期

变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段

1.局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
2.全局变量的生命周期是:整个程序的生命周期。

4.5常量

C语言中的常量和变量的定义的形式有所差异。
C语言中的常量分为以下以下几种:
字面常量
const 修饰的常变量
#define 定义的标识符常量
枚举常量

#include <stdio.h>
//举例
enum Sex
{MALE,
FEMALE,
SECRET
};
//括号中的MALE,FEMALE,SECRET是枚举常量
int main()
{//字面常量演示
3.14;//字面常量
1000;//字面常量//const 修饰的常变量
const float pai = 3.14f; //这里的pai是const修饰的常变量
pai = 5.14;//被const定义过的变量是不能直接修改的!//#define的标识符常量 演示
#define MAX 100  //可以写在大括号外面
printf("max = %d\n", MAX);
//枚举常量演示
printf("%d\n", MALE);
printf("%d\n", FEMALE);
printf("%d\n", SECRET);
//注:枚举常量的默认是从0开始,依次向下递增1的
return 0;
}

注:
上面例子上的 pai 被称为 const 修饰的常变量, const 修饰的常变量在C语言中只是在语法层面限制了,变量 pai 不能直接被改变,但是 pai 本质上还是一个变量的,所以叫常变量。

5. 字符串+转义字符+注释

5.1字符串

“hello bit.\n”
这种由双引号(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;
}

可以看出当含有\0时,只会打印bit,当没有\0时,将会在bit后面在随机打印一串字符,可也得出\0是字符串的结束标志。

5.2转义字符

假如我们要在屏幕上打印一个目录: c:\code\test.c

  • 我们该如何写代码?
#include <stdio.h>
int main()
{printf("c:\code\test.c\n");
return 0;
}
  • 实际运行结果却是这样的,到底是怎么一回事儿呢?


这里就不得不提一下转义字符了。转义字符顾名思义就是转变意思。
看下面的一些转义字符及其他们的作用

注:
在表示16进制时,超过9就用小写字母表示,如 \xab,\x3a 等
如何在屏幕上打印 ’ 和 ” ?

//程序输出什么?
#include <stdio.h>
int main()
{printf("%d\n", strlen("abcdef"));
// \62被解析成一个转义字符
printf("%d\n", strlen("c:\test\628\test.c"));
return 0;
}


strlen可以求字符串的长度
解析如下:
\t是一个转义字符,表示一个字符。\628中的628不能表示八进制数,因为八进制数的每一位都是1~7,所以将后面的8去掉,\62中的62转换成十进制数做对应数字是50,所对应的ASCII码表的字符是2,8对应ASCII码表的一个字符,后边\t表示一个转义字符,所以该字符串的长度加起来就是14啦。
这里给大家找了一张ASCII码表,有几个比较重要的结点,例如48是“0”,65是“A”,97是“a”,(A与a中间差32,后面按照字母或者数字的顺序来推就OK)

5.3注释

1. 代码中有不需要的代码可以直接删除,也可以注释掉
2. 代码中有些代码比较难懂,可以加一下注释文字
比如:

#include <stdio.h>
int Add(int x, int y)
{return x+y;
}
/*C语言风格注释
int Sub(int x, int y)
{
return x-y;
}
*/
int main()
{//C++注释风格
//int a = 10;
//调用Add函数,完成加法
printf("%d\n", Add(1, 2));
return 0;
}

注释有两种风格:
C语言风格的注释 /xxxxxx/
缺陷:不能嵌套注释
C++风格的注释 //xxxxxxxx
可以注释一行也可以注释多行
建议大家使用C++风格的注释,在VS上面使用非常方便,有快捷键。

今天就先到这里了,后续还会不断更新分享,希望对大家有所帮助,喜欢的可以点赞收藏哟,那些地方觉得不好的可以在评论区告诉博主,博主目前还是个小白哈,大家一起进步。

【C语言篇(初级)】初识C语言——上相关推荐

  1. 【C语言篇】初识C语言

    友情链接:C/C++系列系统学习目录 知识总结顺序参考C Primer Plus(第六版)和谭浩强老师的C程序设计(第五版)等,内容以书中为标准,同时参考其它各类书籍以及优质文章,以至减少知识点上的错 ...

  2. C语言入门(初识C语言)

    C语言入门(初识C语言) 前言 什么是C语言? 为什么选择C语言? 计算机语言的发展 高级计算机语言中的经典:C语言 初识C语言(正片开始) 一.第一个C语言程序(你好,C语言) 1.1 #inclu ...

  3. C语言基础01——初识C语言

    目录 什么是C语言 第一个C语言程序:HelloWorld 初识数据类型 初识常量.变量 初始字符串.转义字符.注释 初识选择语句.循环语句 初识函数.数组 初识关键字 定义常量和宏 格式化输入输出 ...

  4. GO语言-第一节-初识Go语言

    目录 1.1 语言简史 1.2 语言特性 1.2.1 自动垃圾回收 1.2.2 更丰富的内置类型 1.2.3 函数多返回值 1.2.4 错误处理 1.2.5 匿名函数和闭包 1.2.7 并发编程 1. ...

  5. python嵌入式系统开发_图解嵌入式系统开发之语言篇:初识Python

    一直忙于工作,似乎忘记了抽时间学习新知识,最近难得空闲,花了两天时间看了一下Python语法.作为工作中经常使用C/C++的人,学习Python的过程中最大的感受就是"似曾相识". ...

  6. C语言学习记录——삼 初识C语言(3)

    函数 看一个程序: #include <stdio.h> Add(int x, int y) { int z = x + y; return z; } int main() { int  ...

  7. 【C语言入门】--初识C语言

    C语言------初识 第一部分 初识 1.VS 2022 中scanf 报错 的 问 题 当我们在VS2022使用scanf时,会出现以上错误: 解释为: 可以考虑使用scanf_s来代替,如果想继 ...

  8. c语言 指针_初识C语言指针

    一切皆为地址 C语言用变量来存储数据,用函数来定义一段功能代码,它们最终都要放到内存中供 CPU 调用. 数据和代码都以二进制的形式存储在内存中,计算机无法从格式上区分某块内存存储的是数据还是代码.当 ...

  9. C语言系列之初识C语言(二)2021.10.19

    接着上期的内容,对C语言的重要知识做一个概述 目录 一.初识选择语句 二.初识循环语句 ​​ 三.函数 四.数组 五.操作符 六.关键字 一.初识选择语句 人生中会遇到很多选择,无论对应的结果是怎样, ...

  10. C语言学习记录-----이 初识C语言(2)

    常量. 分类:字面常量,#define修饰的常量,const修饰的常量,枚举常量.字面常量也就是我们很熟悉的常量,比如5,g,这些都是常量,无法被改变,可以直接写出来.之前的int a = 5,a就是 ...

最新文章

  1. C++二进制文件读写操作
  2. 徐州计算机财务管理课程实验,《计算机财务管理实验报告》.docx
  3. modelandview 可以返回html么_Python: 爬虫网页解析工具lxml.html(一)
  4. 创作一个数字人,总共分几步?(上)
  5. Spring Cloud原理
  6. js 获取java_js中获取当前时间
  7. 单例设计模式-双重检查
  8. swift使用mysql教程,Swift学习教程之SQLite的基础使用
  9. mysql唯一性约束冲突_如何解决逻辑删除与数据库唯一约束冲突
  10. 对症下药,方能药到病除——如何修复drv?
  11. Angular实现购物车计算
  12. 飞腾服务器虚拟化,基于飞腾平台的容器虚拟化技术研究
  13. 企业微信自建应用 网页授权登录 获取用户信息
  14. html转义字符 放大镜,特殊符号
  15. 获取iPhone相册的照片
  16. cocos shader 之 黑白滤镜
  17. Python3.4下载网页
  18. 网站命名规范大全:CSS规范便于交流
  19. 蓝桥杯同一类型题目汇总
  20. 不容错过 科技 商务高清背景图片素材推荐

热门文章

  1. 职高计算机专业毕业200字自我鉴定,职高计算机专业毕业生自我鉴定范文
  2. 深入理解BootStrap Item7 -- 栅格系统(布局)
  3. 大脑白质微观结构的发育
  4. kubernetes(k8s)容器集群管理系统
  5. Canvas+鼠标事件
  6. 企业工商信息查询标准版API开发文档
  7. 数据库——数据完整性和约束条件
  8. Instagram使用体验
  9. 作为一等公民的 Python 函数
  10. [转帖]SPU、SKU、ID,它们都是什么意思,三者又有什么区别和联系呢?