菜鸟逆袭记之【初识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


相关文章
|
8月前
|
C语言
【C语言】备战校赛Day2
【C语言】备战校赛Day2
88 0
|
1月前
|
存储 NoSQL 编译器
【C语言】指针的神秘探险:从入门到精通的奇幻之旅 !
指针是一个变量,它存储另一个变量的内存地址。换句话说,指针“指向”存储在内存中的某个数据。
110 3
【C语言】指针的神秘探险:从入门到精通的奇幻之旅 !
|
3月前
|
机器学习/深度学习 编译器 C语言
C语言刷题(中)(保姆式详解)
C语言刷题(中)(保姆式详解)
26 0
|
8月前
|
Java Unix 程序员
C语言——每位程序员的必修课
C语言——每位程序员的必修课
C语言——每位程序员的必修课
|
8月前
|
C语言
【C语言】备战校赛Day3
【C语言】备战校赛Day3
76 0
【C语言】备战校赛Day3
|
C语言
C语言听课准备
C语言听课准备
44 0
|
C语言
C语言*小白的探险历程
C语言*小白的探险历程
|
8月前
|
测试技术 C语言
【C语言】备战校赛Day1
【C语言】备战校赛Day1
104 0
|
C语言
C语言精选好题-你是天才吗?
C语言精选好题-你是天才吗?
73 0
|
存储 C语言
寒假C语言刷题——day01
寒假C语言刷题——day01