C语言基础内容梳理

目录

一,数据类型总览

二,变量,常量

1,常量

2,变量

三,字符串,转义字符

3.1字符串

3.2 转义字符


朋友们好!!!很久没有更新自己的博客了,不是因为自己偷懒,大学真的不轻松。今天终于有空闲时间来整理自己学习的内容了

一,数据类型总览

数据类型                             所占内存大小
 char         //字符数据类型           1 byte
 int          //整型                  4 byte
 short        //短整型                2 byte
 long         //长整型                4 byte
 long long    //更长的整型             8 byte
 float        //单精度浮点型           4 byte
 double       //双精度浮点型           8 byte 

二,变量,常量

1,常量

程序运行中不可被改变的值称为常量。常量分为以下几种。

2,变量

程序运行过程中可以发生改变的值。

2.1.变量的划分

C语言基础内容梳理_第1张图片

什么? 看不懂??? 那我们直接上例子

#include 
int global = 2019;//全局变量
int main()
{
    int local = 2018;//局部变量  
    int global = 2020;//局部变量
    printf("global = %d\n", global);
    return 0;
}

简而言之呢 就是大括号外面的叫做全局变量,大括号里面的称为全局变量。

那么现在问题来了。我定义了两个global,那么程序运行过程中是输出2020呢?还是2019呢?

让我们来看看运行结果

很显然最后输出的结果是2020。那么我们得到一个结论:当局部变量和全局变量同名的时候,局部变量优先使用.

2.2 变量的作用域和生命周期

人有生老病死,花有盛放凋落。变量也不例外,它也有它的作用范围和生命长度。

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

作用域指的是一段程序代码中所用到的名字的可用性的代码范围。

那么局部变量和全局变量的生命周期作用域有什么不同呢??

三,字符串,转义字符

3.1字符串

"hello world"

这种由双引号引起来的一串字符称为字符串。

#include 
//下面代码,打印结果是什么?
int main()
{
    char arr1[] = "abc";
    char arr2[] = {'a', 'b', 'c'};
    char arr3[] = {'a', 'b', 'c', '\0'};
    printf("%s\n", arr1);
    printf("%s\n", arr2);
    printf("%s\n", arr3);
    return 0;
}
​

好像第二次结果和我们想象的不一样,为什么会出现乱码呢???

我们再回到上面对比一下我们的代码,发现第三行比第二行多了一个/0之后结果就完全不同了。那么问题就应该出现在这个/0处。

其实呢在字符串的后面会自带一个\0,用来告诉电脑这个字符串已经结束了,而输入单个字符的时候是没有\0的,所以第二次打印的时候因为电脑没有检测到\0,所以会一直往后打印直到找到一个\0使它停止。

3.2 转义字符

转义字符 释义
\? 在书写连续多个问号使用
\' 用于表示字符常量
\" 用于表示一个字符串内部的双引号
\\ 用于表示一个反斜杠
\a 警告字符,蜂鸣
\b 退格符
\f 进纸符
\n 换行
\r 回车
\t 水平制表符
\v 垂直制表符
\ddd ddd表示1-3个八进制数字
\xdd dd表示两个十六进制数字

你可能感兴趣的:(C语言学习,c语言,开发语言,后端)