菜鸟逆袭记之【初识C语言】

简介: 这一站,只是为了让我们大概的了解C语言,有些知识讲的不是特别深刻。不过,不要担心,我们这是一个连续节目。先入门,再精通。一上来讲的太难,就会导致从入门到放弃。

前言:

这一站,只是为了让我们大概的了解C语言,有些知识讲的不是特别深刻。不过,不要担心,我们这是一个连续节目。先入门,再精通。一上来讲的太难,就会导致从入门到放弃。


什么是C语言

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


第一个C语言程序

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

这里值得注意的是:


1.main函数是程序的入口。程序第一个读取的就是main函数,而不是第一行


2.一个工程中有且只有一个nain函数

如下图,我们在同一个工程中,分别创建了add.c和sub.c两个源文件,显示编译错误

.6120f00ccea2476eb9a724c2358dfa14.png


3.上面所说的源文件就是后缀为 . c的文件


4.后缀为 . h的文件是头文件


5.include 是包含的意思;stdio------standard input output------标准输入输出。#include<stdio.h>----引用这个头文件,用于输入(scanf)和输出(printf)。当然,没用输入和输出,也可以不引用这个头文件


数据类型

C语言中内置的数据类型有以下几种:


char----------------------字符数据类型

short------------------------短整型

int---------------------------整形

long-------------------------长整形

long long-------------------更长的整形

float-------------------------单精度浮点型

double----------------------双精度浮点型


在此,我们应该有这样的疑问:


为什么有这么多的数据类型


每种数据类型的大小又是多少


#include<stdio.h>
int main( )
{
    printf("%d\n", sizeof(char));
    printf("%d\n", sizeof(short));
    printf("%d\n", sizeof(int));
    printf("%d\n", sizeof(long));
    printf("%d\n", sizeof(long long));
    printf("%d\n", sizeof(float));
    printf("%d\n", sizeof(double));
    printf("%d\n", sizeof(long double));
    return 0;
}

0ea18848e0ab462c8ce6ffcf6459715e.png


sizeof函数是用来计算数据及数据类型所占空间的大小的,单位是字节


一个整形类型为什么会有这么多种的类型------其实是为了更加丰富的表达生活中的各种值


      那么有了数据类型,应该怎么去用呢?
double sum = 0;
char arr = 'e';
int sum = 0;
//数据类型 变量名 
//建议每个变量都初始化

常量,变量

在日常生活中,有不变的量,也有变化的量。

在C语言中,我们把不变的量叫做常量,把变化的量叫做变量

是不是根据字面意思就很好理解


常量

C语言中的常量分为以下几种:


1.字面常量

2.const 修饰的常变量

3.#define定义的标识符常量

4.枚举常量 (以后再讲)

        //字面常量演示
        3.14;//字面常量
        1000;//字面常量
        //const 修饰的常变量
        const float pai = 3.14f;   //这里的pai是const修饰的常变量
        pai = 5.14;//是不能直接修改的!
        //#define的标识符常量 演示
        #define MAX 100
        printf("max = %d\n", MAX);

const修饰的常变量,是具有常量性质的变量(是不能直接修改的)在本质上还是一个变量


变量

变量的命名不是随意的,有以下一些规则:

1、只能由字母(包括大写和小写)、数字和下划线( _ )组成

2、不能以数字开头

3、长度不能超过63个字符

4、变量名中区分大小写的

5、变量名不能使用关键字


变量的分类:

1.全局变量

2.局部变量


当局部变量与全局变量相撞在一起,会发生什么??

60111d1a22274ae3bda850a87e56017b.png


运行结果是:

f7489d8d253341f994cb8ad9bdb6f0b1.png


这里说明:局部变量 > 全局变量

接下来,该谈谈变量的作用域和生命周期

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


1.局部变量的作用域是变量所在的局部范围

2.全局变量的作用域是整个工程

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


局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束

全局变量的生命周期是:整个程序的生命周期


我们以下面的程序为列子,来解释一下作用域和生命周期

#include<stdio.h>
int main()
{
  {
    int a = 5;
  }
  printf("%d\n", a);
  return 0;
}


运行结果:

f3357150ea7f4b5c81703c20d9de456c.png


变量a定义在第四到六行的{ }内,那么它的作用域就在那里边,出了作用域就不起作用了;如果我们要强行打印变量a的内容,必须在main函数外面先定义一下,如以下的代码:

#include<stdio.h>
int main()
{
  int a = 0;
  {
      a = 5;
  }
  printf("%d\n", a);
  return 0;
}


运行结果:

692caa84e9e04f5a88b2a2a61071ef3d.png


字符串+转义字符+注释

1.字符串

"you are the best \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;
}

650d210710034c9ab9fe54869402bc6a.png

27f070c6bbe44b2eab74f5d2d50cfff2.png

这里就形象的证明了\0是字符串结束的标志


当然,我们用另一组数据也可以证明。这里要用到strlen函数


4ce0477971ee4e4599b034b0c6ffbfdf.png


sizeof( )函数-----用来计算数据及数据类型所占空间的大小,单位是字节

2. strlen-----头文件是<string.h>,是用来专门计算字符串的大小(找到 \0 才结束),单位是个

3. 字符串的 \0 是字符串结束的标志,不算是字符串的内容


2.转义字符

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

0ba9ad469c0f46f8b3ebc4f702455f12.png



这里就不得不提一下转义字符了,顾名思义,转义字符就是转变意思

6ccac53766284f4b9aaaabd8341d4009.png

问题1:在屏幕上打印一个单引号’,怎么做?

问题2:在屏幕上打印一个字符串,字符串的内容是一个双引号“,怎么做?


相信你们已经有了自己的答案了,接下来看一看正确的代码:

b31d9dace3024d30870ec30b45d836f9.png


3.注释

代码中有不需要的代码可以直接删除,也可以注释掉

代码中有些代码比较难懂,可以加一下注释文字


89057062bf864d458a5feb69a6362586.png

826a1cc9ba1a4cb7a2f49152e8cda16b.png

结构体

前言:

前面C语言内置的数据类型只能用来描述一种类型。如果我们想要在一个变量中反应几种不同类型的数据类型,那么就需要我们今天所学的结构体类型

这里我们先随意定义一个结构体:


207d9c9b25b0411398306ca319be13fd.png


struct------结构体的标志

struct stu------结构体变量类型(相当于 int )

可以直接在后面定义一个结构体变量s, 也可以在main函数内部定义。这两种定义类型还是有区别的:前者是全局变量,后者是局部变量


下面,进行结构体初始化:

    struct stu s = { 20,"沐雨",'男'};

1.结构体的初始化跟数组一样,都是用的{ }


2.依次按顺序写出初始化的数据,中间用逗号操作符( , )来连接


下面来介绍结构体用到的操作符

3d9691155354452cba0589629409012e.png


相关文章
|
机器学习/深度学习 人工智能 数据可视化
机器学习:详解贝叶斯网络+例题分析
机器学习:详解贝叶斯网络+例题分析
3283 0
机器学习:详解贝叶斯网络+例题分析
|
14天前
|
存储 人工智能 算法
​​向量数据库终极指南:AI开发者的进阶手册​
本文深入解析向量数据库的原理与实战应用,涵盖其在AI系统中的核心作用、关键技术(如HNSW、PQ、LSH)、相似性搜索、元数据过滤及无服务器架构优势。适合开发者和AI从业者学习提升。
161 0
|
10月前
|
机器学习/深度学习 算法 计算机视觉
探索SVM(支持向量机)的奥秘:从原理到实践
探索SVM(支持向量机)的奥秘:从原理到实践
|
物联网 传感器 安全
物联网设备的能效管理与优化
【6月更文挑战第2天】在物联网时代,能效管理成为关键议题。有效管理能避免设备过度消耗能源,减少浪费并保护环境。通过动态调整能源供应、选用低能耗硬件、智能算法优化及高效数据处理,可实现能效优化。示例代码展示了软件控制节能模式。能效管理应用于农业和城市,实现精准操作和节能。这是科技与环保的融合,助力可持续未来,让物联网世界更美好。
313 2
|
JavaScript 前端开发 开发者
深入了解rollup(一)快速开始
Rollup 是一个用于 JavaScript 的模块打包工具,它将小的代码片段编译成更大、更复杂的代码,例如库或应用程序。它使用 JavaScript 的 ES6 版本中包含的新标准化代码模块格式,而不是以前的 CommonJS 和 AMD 等特殊解决方案。ES 模块允许你自由无缝地组合你最喜欢的库中最有用的个别函数。这在未来将在所有场景原生支持,但 Rollup 让你今天就可以开始这样做。
188 0
|
安全 Java Apache
Log4j2 RCE漏洞及靶场搭建
Apache Log4j2是一款Java日志框架,是Log4j 的升级版。可以控制每一条日志的输出格式。通过定义每一条日志信息的级别,能够更加细致地控制日志的生成过程。该漏洞是由于Apache Log4j2某些功能存在递归解析功能,攻击者可利用该漏洞在未授权的情况下,构造恶意数据进行远程代码执行攻击,最终获取服务器最高权限。
757 0
Log4j2 RCE漏洞及靶场搭建
|
存储 关系型数据库 MySQL
Cpolar内网穿墙使用
Cpolar内网穿墙使用
Cpolar内网穿墙使用
|
SQL 存储 数据采集
软件测试之测试的分类(重点:黑盒测试、白盒测试、单元测试、集成测试、系统测试)
1. 按照测试对象进行划分 1)界面测试 2)可靠性测试 3)容错性测试 4)文档测试 5)兼容性测试 6)易用性测试 7)软件安装卸载的测试 8)安全测试 9)性能测试 10)内存泄漏测试 2. 按照是否查看代码划分 1)黑盒测试 2)白盒测试 3)灰盒测试 3. 按照开发阶段划分 1)单元测试(结合 V 模型) 2)集成测试 3)系统测试 4)验收测试 5)将上面四种测试方法同 V 模型的阶段进行对应 4. 按照测试实施组织划分 1)α 测试 2)β 测试 3)第三方测试 5. 按照是否运行进行划分 1)静态测试 2)动态测试 6. 按照是否手工划分 1)手工测试 2)自动化测试
1628 0
|
编解码 BI 人机交互
全国30m精度二级分类土地利用数据/植被类型数据/土地覆盖数据获取
全国30m精度二级分类土地利用数据/植被类型数据/土地覆盖数据获取
全国30m精度二级分类土地利用数据/植被类型数据/土地覆盖数据获取
|
弹性计算 运维 监控
阿里云服务器ECS试用攻略,个人与企业试用阿里云服务器介绍
一直以来,阿里云都在尽全力帮助您更好地使用云服务器,现在,阿里云为我们提供1个月试用服务,您可在一个月内免费使用云服务器,帮助实现您的业务需求。个人和企业用户均可以申请试用,个人用户可以申请基础版试用,企业用户可以申请企业版试用,下面是阿里云服务器ECS试用攻略,分为个人版和企业版。
阿里云服务器ECS试用攻略,个人与企业试用阿里云服务器介绍