零基础认识C语言

目录

1、什么是C语言?

2、第一个C语言程序

3、数据类型

那么每种类型的大小是多少呢?

类型的使用:

4、变量、常量

4.1定义变量的方法

4.2变量的命名

4.3变量的分类

4.4作用域和生命周期

4.5常量

5、字符串、转义字符、注释

5.1字符串

5.2转义字符

5.3注释

6、选择语句

7、循环语句

8、函数

9、数组

9.1数组的定义

9.2数组的下标

9.3数组的使用

10、操作符

11、常见关键字

11.1关键字typedef

11.2关键字static

12、#define定义常量和宏

13、指针

13.1内存

13.2指针变量的大小

14、结构体


基本了解C语言的基础知识,对C语言有一个大概的认识

1、什么是C语言?

C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译

2、第一个C语言程序

#include <stdio.h>

int main()
{
    printf("hello world!\n");
    return 0;
}

//解释:

//main函数是程序的入口

//在一个工程中main函数只能有一个

3、数据类型

char                                //字符数据类型

short                               //短整型

int                                   //整型

long                                //长整型

long long                        //更长的整型

float                                //单精度浮点型

double                            //双精度浮点型

那么每种类型的大小是多少呢?

int main()
{
	printf("%d\n", sizeof(char));        //1字节
	printf("%d\n", sizeof(short));       //2字节
	printf("%d\n", sizeof(int));         //4字节
	printf("%d\n", sizeof(long));        //4字节
	printf("%d\n", sizeof(long long));   //8字节
	printf("%d\n", sizeof(float));       //4字节
	printf("%d\n", sizeof(double));      //8字节
	return 0;
}

类型的使用:

char ch = 'a';

int a = 120;

double b = 2.2;

4、变量、常量

4.1定义变量的方法

int year = 2023;

double b = 3.1416926;

char c = 'x';

4.2变量的命名

  • 只能由字母(包括大写和小写)、数字和下划线组成。
  • 不能以数字开头
  • 长度不能超过63个字符
  • 变量名中区分大小写
  • 变量名不能使用关键字

4.3变量的分类

//当全局变量和局部变量同名时,局部变量优先

int global = 2020;//全局变量
int main()
{
    int local = 2023;//局部变量
    int golbal = 2022;//局部变量
    printf("global = %d\n", golbal);
    return 0;
}

4.4作用域和生命周期

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

  • 局部变量的作用域是变量坐在的局部范围。
  • 全局变量的作用域是整个工程。

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

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

4.5常量

C语言中的常量有一下几种:

  • 字面常量
  • const修饰的常量
  • #define定义的标识符常量
  • 枚举常量

//枚举
enum Student
{
    NAME,
    AGE,
    ID
};

//#define的标识符常量
#define MAX 10000


int main()
{
    500;//字面常量
    18.5;//字面常量

    const double pai = 3.1415926;//pai是const修饰的常变量
    //pai = 10.5;//pai不能别修改

    printf("%d\n", MAX);//#define的标识符常量

    printf("%d\n", NAME);//枚举常量    0
    printf("%d\n", AGE);//枚举常量     1
    printf("%d\n", ID);//枚举常量      2

    return 0;
}

5、字符串、转义字符、注释

5.1字符串

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

int main()
{
    char arr1[] = "hello";
    char arr2[] = { 'h','e','l','l','o' };
    char arr3[] = { 'h','e','l','l','o','\0'};


    printf("%s\n", arr1);
    printf("%s\n", arr2);
    printf("%s\n", arr3);

    return 0;
}

运行结果是:

 5.2转义字符

转义字符释义
\?在书写连续多个问号时使用,防止他们被解析成三字字母
\'用于表示字符常量  '
\"用于表示一个字符串内部的双引号
\\用于表示一个反斜杠,防止它被解释为一个转义序列符
\a警告字符,蜂鸣
\b退格符
\f进纸符
\n换行
\r回车
\t水平制表符
\v垂直制表符
\dddddd表示1-3个八进制的数    如:\130        X
\xdddd表示2个十六进制的数      如:\x30        0

int main()
{
    printf("%d\n", strlen("abcdef"));
    printf("%d\n", strlen("c:\test\628\test.c"));
    return 0;
}

//输出:

6

14

5.3注释

  • 代码中有不需要的代码可以直接删除,也可以选择注释掉
  • 代码中有些代码比较难懂,加一些注释方便自己跟他人读懂

注释有两种风格:

  • C语言的注释风格:/*xxxxxxxxx*/
  • C++的注释风格:   //xxxxxxxxxx

6、选择语句

选择语句流程图:

 int main()
{
    int input = 0;
    printf("你寒假好好学习吗?(选择1 or 0):>");
    scanf("%d", &input);
    if (input == 1)
    {
        printf("期末不挂科\n");
    }
    else
    {
        printf("期末挂科\n");
    }
    return 0;
}

7、循环语句

循环语句流程图:

 int main()
{
    printf("寒假中:");
    int line = 0;
    while (line <= 20000)
    {
        printf("写代码\n");
        line++;
    }
    if (line > 20000)
    {
        printf("好offer\n");
    }
    return 0;
}

 8、函数

//两个数求和

int Add(int x, int y)
{
    return x + y;
}


int main()
{
    int x = 0, y = 0;
    scanf("%d %d", &x, &y);
    int ret = Add(x, y);        //调用Add函数求和
    printf("%d", ret);
    return 0;
}

//函数的特点是简化代码,实现代码的复用

9、数组

9.1数组的定义

int array[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; //定义一个整型数组,最多存放10个元素

9.2数组的下标

C语言规定数组的下标是从0开始,数组可以通过下标来访问。

 9.3数组的使用

int main()
{
    int array[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
    //打印出数组里的元素
    for (int i = 0; i < 10; i++)
    {
        printf("%d ", array[i]);
    }
    printf("\n");
    return 0;
}

10、操作符

算数操作符:

+        -        *        /        %

移位操作符:

>>        <<

位操作符:

&        ^        |

赋值操作符:

=        +=        -=        *=        /=        &=        ^=        |=        >>=        <<=

单目操作符:

!                        逻辑反操作

-                          负值

+                         正值

&                         取地址

sizeof                  操作数的类型长度(以字节为单位)

~                         对一个数的二进制按位取反

--                         前置、后置--

++                       前置、后置++

*                          间接访问操作符(解引用操作符)

(类型)                  强制类型转换

关系操作符:

>                        

>=

<

<=

!=                          用于测试“不相等”

==                         用于测试“相等”

逻辑操作符:

&&                         逻辑与

||                            逻辑或

条件操作符:

exp1 ? exp2 : exp3

逗号表达式:

exp1, exp2, exp3,......., expn

下标引用、函数调用和结构成员

[]        ()        .        ->

11、常见关键字

auto        break        case        char        const        continue        default        do        double    else        enum        extern        float        for        goto        if        int        long        register      return        short        signed        sizeof        static        struct        switch        typedef        union        unsigned        void        volatile        while

11.1关键字typedef

//类型重命名

typedef int uint_32;

int main()

{

        //n和m的类型是一样的

        int n = 0;

        uinu_32 m = 0;

        return 0;

}

11.2关键字static

  • static可以用来稀释变量和函数
  • static修饰局部变量改变了变量的生命周期,让静态局部变量出了作用域依然存在,到程序结束,生命周期才结束。
  • static修饰全局变量,使得这个全局变量只能在本源文件内使用,不能在其他源文件内使用。
  • static修饰一个函数,使得这个函数只能在本源文件内使用,不能在其源文件内使用。

12、#define定义常量和宏

//#开头的叫做预处理指令


#include <stdio.h>
#define N 2
#define M N + 1
#define NUM (M + 1) * M / 2
int main()
{
printf("%d\n", NUM);
return 0;
}
//结果是:

8 —— (2 + 1 + 1) * 2 + 1 /2

13、指针

13.1内存

内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的。所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是一个字节。为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址

 变量是创建在内存中的,在内存中分配空间,每个内存单元都有地址,所以变量也是有地址的。

//取出变量地址如下:

int main()
{
    int n = 0;
    //这里n的四个字节,每个字节都有地址,取出的是第一个字节的地址(较小的地址)
    int* pn = &n;//取出n的地址
    printf("%p\n", pn);//打印地址,%p是以地址的形式打印
    return 0;
}

 13.2指针变量的大小

//指针变量的大小取决于地址的大小
//32位平台下地址是32个bit位,四个字节
//64位平台下地址是64个bit位,八个字节


int main()
{
    printf("%d\n", sizeof(char*));
    printf("%d\n", sizeof(short*));
    printf("%d\n", sizeof(int*));
    printf("%d\n", sizeof(double*));

    return 0;
}

14、结构体

//结构体的定义


struct student
{
    char name[10];//姓名
    int age;      //年龄
    char sex[10]; //性别
    char id[10];  //学号
};

int main()
{
    student student1 = {"ljl", 20, "male", "0001"};

    //打印结构体信息
    printf("%s\t%d\t%s\t%s\n", student1.name, student1.age, student1.sex, student1.id);

    student* ps = &student1;
    printf("%s\t%d\t%s\t%s\n", ps->name, ps->age, ps->sex, ps->id);

    return 0;
}

以上就是C语言最基本的知识体系,希望可以给零基础的同学和初学C语言的同学一点帮助!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值