C语言快速入门(和bug郭一起学C系列1)

写在前面

本系列博客旨在记入博主学习C语言的的笔记和自己的一些理解。
希望通过博主的一些分享能够帮助学习c语言小白快速入门,和博主一起学习,快速进步,一起交流,互相督促,共同学习!(本系列持续更新)

C语言快速入门

  • 写在前面
  • 本章目标
  • 什么是C语言
    • 语言的发展
      • 机器语言
      • 汇编语言
      • C语言历史
      • C语言的优势
  • 第一个C语言程序
    • C语言环境的配置
      • APP推荐建议
      • 安装教程推荐
    • 第一个C程序
      • ==注意事项==
  • 数据类型
    • 整型
    • 浮点型
  • 常量和变量
    • 常量
      • 字面常量
      • const修饰的常变量
      • #define定义的常量
      • 枚举常量
    • 变量
      • 定义变量的方法
      • 变量的分类
      • 变量的作用域及生命周期
  • 字符串("\0")
        • 字符串的结束标志'\0';
  • 转义字符
  • C注释
  • 选择(分支)语句
  • 循环语句
  • 函数
  • 数组
  • 操作符

本章目标

基本了解C语言的基础知识,对C语言有一个大概的认识。每个知识点就是简单认识,快速入门C语言,后期博主还会对每个知识点深入学习。

什么是C语言

C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

像英语,汉语一样,属于交流的语言,不过是人和计算机交流的语言。
C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。

语言的发展

C语言快速入门(和bug郭一起学C系列1)_第1张图片

机器语言

第一代计算机语言称为机器语言。机器语言就是 0/1 代码。计算机只能识别 0 和 1。在计算机内部,无论是一部电影还是一首歌曲或是一张图片,最终保存的都是 0/1 代码,因为 CPU 只能执行 0/1 代码。

汇编语言

首先这么像机器语言编写肯定是可以的,但是这样太麻烦,而且很不好理解,所以后来就出现了汇编语言。

汇编语言就是将一串很枯燥无味的机器语言转化成一个英文单词。比如说:add 1, 2;
add 就是一个英文单词,这样看起来就稍微有一些含义了,即 1 和 2 相加。这个就是汇编语言。

C语言历史

C语言是由B语言发展而来,而后大多公司都使用C语言,不同的公司对C语言有自己的发展,和改进,而后出现不同的标准。
为了统一标准 美国国家标准协会(ANSI)先后C89 C99 C12等标准。目前比较权威的为c99。
而后在C语言的基础演变了C++,java 等面向对象的语言。

C语言的优势

广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言偏向于底层开发,如操作系统。

1、广泛用于底层开发
2,可移植性强,跨平台性

3,其编译器(将C语言转换成计算机语言)主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
如VS(IDE集成开发环境)用的就是MSVC编译器。

第一个C语言程序

看了C语言的历史你肯定迫不及待想自己写一个C语言程序吧。

C语言环境的配置

APP推荐建议

VS2019下载地址
下载vs2013及以上版本环境

安装教程推荐

B站比特鹏哥教程如下
VS2019安装教程

第一个C程序

相信看了安装教程,你已经安装好了VS2019并且成功的创建第一个C语言项目吧。
那我们来写第一个C语言程序吧!
在屏幕中输出Hello world!
C语言快速入门(和bug郭一起学C系列1)_第2张图片是不是很神奇,短短6行代码便实现了我们想要实现的功能。
其实编程语言的出现,代码就是描述我们生活中的实际问题的!

注意事项

1, 一个项目中有且仅有一个主(main)函数
2,{ 是程序的入口 表示程序开始,} 便是程序的出口表示程序结束
3,因为printf是在stdio.h库中的,就好比生活中你使用别人的东西 ,使用了printf函数前需要向stdio.h打招呼所以 main 函数上面要包含库函数
4 ,main前有一个int 说明该函数的返回值是整型(这些我们待会会学到,先记住)与最后一行代码return 0相呼应;
记住上面便能实现自己第一个C语言程序了快去试试吧!

数据类型

//整型
  //即数学中的整数   
    short 
    int
	long 
	long long 
//浮点型
 //数学中的小数(小数点可浮动)
   float  
   double

整型 可以表示生活中的 年龄 ,人数等整数数据
而浮点型 可以表示 生活中的体重,身高等带有小数的数据

想必你会疑问 :为什么会出现怎么多数据类型呢?
首先我们先来测试一下它们这些类型的内存大小
我们先来认识一个函数

sizeof()用来计算类型或者数据所占内存空间大小的函数返回值是int 即返回字节大小

C语言快速入门(和bug郭一起学C系列1)_第3张图片 注:C语言规定sizeof(long)>=sizeof(int) 即可
所以long类型在不同平台的大小不同,4/8

整型

根据生活中数据范围不同选择不一样的数据类型,合理的利用内存空间
比如 一个人的年龄 最多不超过500 所以用short短整型即可

浮点型

表示精度的不同,即小数点后面 位数长度不同
根据你的数据精度不同,合理选择浮点类型

常量和变量

顾名思义 常量就是不变的量,变量可以改变的量

常量

不可改变的量
如人的性别,身份证号码等等…

字面常量

66;
3.14
999
//*这些都是字面常量*

const修饰的常变量

const 修饰变量使改变量具有常属性(不可修改)

const int height=175;//创建了一个int类型的变量 const修饰后
                     // height不可改变
         height=200;  //err
   

但是该量还是变量只不过有了常量的不可修改属性
C语言快速入门(和bug郭一起学C系列1)_第4张图片代码中的两个错误
错误1,const 修饰的常量不可修改
错误2,const 本质还是变量不可定义数组长度

#define定义的常量

C语言快速入门(和bug郭一起学C系列1)_第5张图片
使用方法
#define MAX 100
#define +空格+常量名+空格+字面常量
注:常量名习惯大写

枚举常量

生活中有一些值可以一一列举
比如 :性别,三元色等等;

enum sexa  //枚举类型
{
     
   male,  //枚举常量
   female
};

enum sexa 就是枚举类型和int一样属于一种数据类型
C语言快速入门(和bug郭一起学C系列1)_第6张图片该类型只有两种枚举常量可以选择 male和female
使用时赋值其他未定义的枚举常量会报错
C语言快速入门(和bug郭一起学C系列1)_第7张图片

每个枚举常量有自己的值 规定第一个值为0然后从上到下依次加一;
C语言快速入门(和bug郭一起学C系列1)_第8张图片设置枚举常量可以赋初始值

变量

可以改变的量

定义变量的方法

类型 +变量名+常量;

int age=10;
    age=13;//可以修改
float pai=3.14;
char ch='w';

变量的分类

局部变量
定义在{}内的变量为局部变量
全局变量
定义在main函数外且不在{}内的变量
eg:

   int glab=4;//全局变量
   int add(int x, int y)
   {
     
      int sum=0;
      // 局部变量
   }
   int main()
   {
     
      int a=6;
       // 局部变量
   } 

是否想过当局部变量和全局变量同名时会怎样?
C语言快速入门(和bug郭一起学C系列1)_第9张图片看到上面的结果想必你有了答案!
总结

上面的局部变量a变量的定义其实没有什么问题的!
当局部变量和全局变变量同时存在时采用局部优先原则

变量的作用域及生命周期

作用域(scope),程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的而限定这个名字的可用性的代码范围就是这个名字的作用域。

简单的说作用域就是该变量存在的范围 出了该范围该变量就失效

局部变量的作用域在它的局部范围即在{ }
全局变量的作用域在整个工程

  int main()
  {
     
    int b=1;
    {
     
    int a=12;
    // a的作用域
    }  
   // b的作用域
  }

C语言快速入门(和bug郭一起学C系列1)_第10张图片
可以看到全局变量的作用域是整个工程!
生命周期

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

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

字符串("\0")

    " Hello world"

这种由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal),或者简称字符串。

顾名思义字符串就是一串字符
C语言没有这种类型,所以通常存放在数组中

//字符
    char ch='w'; 
 //字符串
    char arr1[]={
      'H','e','l','l','o'};
    char arr2[]="hello";

字符串的结束标志’\0’;

注:字符串的结束标志是一个\0的转义字符。
在计算字符串长度的时候\0是结束标志,不算作字符串内容。

C语言快速入门(和bug郭一起学C系列1)_第11张图片可以直观看到字符串arr2内有6个字符,而字符数组只有5个字符
C语言快速入门(和bug郭一起学C系列1)_第12张图片打印arr1和arr2时因为打印函数遇到‘\0’才会停止打印
所以arr1在后面找了很久才遇到’\0’所以Hello后面都是随机值

那‘\0’算字符串长度吗?
C语言快速入门(和bug郭一起学C系列1)_第13张图片
strlen计算字符串长度函数遇到’\0’计算结束
arr1找了31个字符才找到结束标志‘\0’
所以‘\0’并不算字符串长度
总结

字符串的结束标志是一个\0的转义字符。
在计算字符串长度的时候\0是结束标志,不算作字符串内容。

转义字符

当你要打印你的文件路径时
C语言快速入门(和bug郭一起学C系列1)_第14张图片在这里插入图片描述就很迷,为什么这样呢?
这是就要提到转义字符这个概念了
难道转义字符是转变了该字符的本来意思?
下面看一些转义字符
C语言快速入门(和bug郭一起学C系列1)_第15张图片转义字符的使用
C语言快速入门(和bug郭一起学C系列1)_第16张图片看了转义字符成功打印了正确的路径
自己可以去试试

C注释

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

C语言快速入门(和bug郭一起学C系列1)_第17张图片

注释有两种风格:C语言风格的注释/xxxxxx/
缺陷:不能嵌套注释
C++风格的注释//xxxxxxxx可以注释一行也可以

VS默认c++风格
注释快捷键
在这里插入图片描述C语言快速入门(和bug郭一起学C系列1)_第18张图片

选择(分支)语句

循环语句

函数

数组

操作符

你可能感兴趣的:(笔记,字符串,编程语言,c语言)