快速走遍C(语言)世界

准备好了吗/strong>

目录

准备好了吗/p>

首先,我们先了解一下C语言历史~

接下来让我们准备一下合适的编译器软件吧~

下载完成后是不是迫不及待打开试一下呀~

是不是觉得太简单而无聊了下来开始干货:

数据类型:

那么思考:为什么出现这么的类型呢/p>

                  每种类型的大小是什么/p>

整型

浮点型

变量、常量

字面常量

define定义的常量

const 修饰的常变量

枚举常量

       变量

变量的分类:

变量的使用

变量的作用域和生命周期

字符串+转义字符+注释

字符串

转义字符

注释

函数

数组

操作符

关系操作符

逻辑操作符

条件操作符

逗 表达式

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

常见关键字

define定义的常量和宏

指针

指针的大小

结构体


首先,我们先了解一下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等。  

接下来让我们准备一下合适的编译器软件吧~

VS2019在这里下载哦~(可免费使用的软件):https://www.bilibili.com/video/BV17p4y1h7yR/

下载完成后是不是迫不及待打开试一下呀~

让我们用编译器向世界打个招呼吧!

运行结果如下:

//解释:main函数是程序的入口,一个工程中main函数有且仅有一个。

是不是觉得太简单而无聊了下来开始干货:

数据类型:

那么思考:为什么出现这么的类型呢/h3>

                  每种类型的大小是什么/h3>

每种类型对应的字节大小:

   注意:存在这么多的类型,不仅是为了更加丰富的表达生活中的各种值,更是为了能够根据数据范围选择合适的数据类型,对内存空间合理的利用。

那么我们应该怎么合理选择合适的数据类型呢/p>

整型

如果我们定义的目标数字不太大,例如年龄,一般不会超过120岁(当然有例外,这时候可以用后面介绍的类型),我们可以用char(-128~127)来定义;统计年级人数时,人数可能几千人,我们可以选择short(-32768~32767)类型来定义。

当然在练习过程中我一般喜欢用int来定义,不用考虑太多的麻烦。

下面是我整理的-整型的有符 数取值范围:

char   -128~127

short    -32768~32767

int        -2^31~2^31-1

long   -2^64~2^64-1

浮点型

float:        单精度,精度是2^23,   能够保证六位。

double:      双精度,精度是是2^52,能保证15位。

变量、常量

生活中有些值是不会改变的(比如:圆周率、性别(、身份证 码等等)

有些值是可以改变的(比如:身高、年龄、物价等等)

类比于C语言,不变的值叫做常量,改变的值叫做变量。

字面常量

define定义的常量

注意:arr[ ]的”[]”里面只能放常量,如果上面代码可行,实际上就是#define定义的就是常量。

方法:define +空格+字母(习惯上用大写)+数字                ————-(注意后面没有分 )

const 修饰的常变量

此时const修饰的变量a不能再被更改,编译器不能过去。这可以对不想改变的量就行锁定,不会被不小心更改。

注意:在这里要说明的是,const修饰的变量a还是常量,只是被赋予了常属性。

枚举常量

#include
    //举例
    enum Sex
    {
        MALE,
       FEMALE,
       SECRET,
    };
    //括 中的MALE、FEMALE、SECRET是枚举常量

       变量

       定义变量的方法:

     

变量的分类:

局部变量

全局变量

#include

int a=1;//全局变量

int main()

{

int b=2;//局部变量,就是放到main函数内部的变量

int a=2;//在main函数内外都定义一个变量,赋给不同的值会不会出错呢出错的话打印的              //a是多少呢/p>

printf(“%dn”,a);

printf(“%dn”,b);

return 0;

}

 运行结果如下:

           

这说明了什么呢—全局变量和局部变量可以同名定义,这时候局部变量优先使用。(划重点)

变量的使用

#include
int main()
{
    int num1 = 0;
    int num2 = 0;
    int sum = 0;
    printf(“请输入两个操作数:n”);
    scanf(“%d%d”, &num1, &num2);
    sum = num1 + num2;
    printf(“%dn”, sum);
    return 0;
}

补充一下:输入函数scanf和输出函数printf使用的知识。

可以看到:变量num1取2,变量num2取3 后算出的的值。

变量的作用域和生命周期

作用域:

程序设计概念上通常来讲,一段程序代码中所使用的名字总不是一直可行有效的。

而限制这个所使用的名字可行范围叫作作用域。

注意:1. 局部变量的作用域是变量所在的局部范围。

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

生命周期:

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

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

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

字符串+转义字符+注释

字符串

字符串:” Hello world ! n “

这种由双引 引起来的一串字符成为字符串字面值,简称字符串。

注意:字符串的结束标志是一个 的转义字符(虽然表面上没有体现出来,知人知串不知心啊)。在计算字符串长度的时候 是结束标志,不算作字符串 内容;在计算字符串空间大小时, 却包括在内。

在具体打印字符串的时候 具体起到什么作用呢/p>

直接上代码:

#include
int main()
{
    char arr1[] = “bit”;
    char arr2[] = { ‘b’,’i’,’t’ };
    char arr3[] = { ‘b’,’i’,’t’,’ ’ };
    printf(“%sn”, arr1);
    printf(“%sn”, arr2);
    printf(“%sn”, arr3);
    return 0;
}

从运行结果我们可以看到,在字符串结尾有 时打印的是”bit”,没有 的打印的是”bit烫烫烫烫蘠it”.

总结: 是字符串结束的标志,但是在实际打印中不会去打印。如果后面没有 时,在打印过程中系统会一直往后面寻找,一直找到 才会停止打印。

注意:arr1定义的字符串后面有一个默认的 .

转义字符

如果我们想要在屏幕上打印一个目录: c:codetest.c

我们会不会这样写/p>

#include
int main()
{
    printf(“c:codetest.c\n”);
    return 0;
}

这样写的结果却是这样:

发现这不是我们想要的结果啊!怎么回事/p>

这里就不得不提一下转义字符了。转义字符顾名思义就是转变意思。 下面看一些转义字符。

#include
int main()
{
    //在屏幕上打印一个单引 ‘,怎么做引 呢br>     printf(“%cn”,”’);
    printf(“%sn”, “””);
    return 0;
}

实际结果如下:

如果没有那个“多余的”— ‘’结果会怎么样/p>

哎呀,是不是发现出错了。不难得出结论,转义字符就是转变意思。

再来练习一下:

那我们打印n该怎么做呢/p>

笔试题:

//程序输出什么/p>

#include 

int main()

{

   printf(“”%dn””

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年5月24日
下一篇 2021年5月24日

相关推荐