初识C语言(一)

简介: 初识C语言(一)

1.什么是C语言

C 语言是一种通用的、面向过程式的计算机程序设计语言。1972 年,为了移植与开发 UNIX 操作系统,丹尼斯·里奇在贝尔电话实验室设计开发了 C 语言。

C 语言是一种广泛使用的计算机语言,它与 Java 编程语言一样普及,二者在现代软件程序员之间都得到广泛使用。

当前最新的 C 语言标准为 C18 ,在它之前的 C 语言标准有 C17、C11...C99 等。

2.第一个C语言程序

#include<stdio.h>
int main()
{
  printf("Hello 奔跑在路上的小蜗牛");
  return 0;
}

3.数据类型

char             //字符数据类型

short           //短整型

int               //整型

long            //长整型

long long     //更长的整型

float            //  单精度浮点数

double       // 双精度浮点数

单位基础知识

1B (byte,字节) = 8 bit (比特,又称"位", 计算机中每个0或1就是一个位(bit)) ;

1KiB(Kibibyte,千字节)=1024B= 2^10 B;

1MiB (Mebibyte,兆字节,百万字节,简称"兆") =1024KB= 2^20 B ;

1GiB (Gibibyte,吉字节,十亿字节,又称"千兆") =1024MB= 2^30 B ;

1TiB (Tebibyte,万亿字节,太字节) =1024GB= 2^40 B ;

1PiB (Pebibyte,千万亿字节,拍字节) =1024TB= 2^50 B ;

1EiB (Exbibyte,百亿亿字节,艾字节) =1024PB= 2^60 B ;

1ZiB (Zebibyte,十万亿亿字节,泽字节) = 1024EB= 2^70 B ;

1YiB (Yobibyte,一亿亿亿字节,尧字节) = 1024ZB= 2^80 B ;

4.变量、常量

在程序运行过程中,其值不能被改变的量称为常量。

变量代表一个有名字的、具有特定属性的一个存储单元。它用来存放数据,也就是存放变量的值。在程序运行期间,变量的值是可以改变的。

变量必须先定义后使用。在定义时指定该变量的名字和类型。

变量的命名

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

变量的分类

定义在函数内部的变量称为局部变量(Local Variable),它的作用域仅限于函数内部, 离开该函数后就是无效的,再使用就会报错。

在所有函数外部定义的变量称为全局变量(Global Variable),它的作用域默认是整个程序,也就是所有的源文件,包括 .c 和 .h 文件。

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

总结; 当局部变量和全局变量同名的时候,局部变量优先使用。

变量的使用

#include<stdio.h>
int main()
{
  int a = 0;
  scanf("%d",&a);//%d表示的是输出的格式(在下面小提一下有个概念)
//  scanf(“格式控制字符串”, 地址表列);&a表示变量的地址,表示数据存在哪里
 
  printf("%d", a);
}
 
 
//scanf的作用:输入数据,数据从键盘读取到内存中
//printf的作用:输出数据,数据从内存打印(输出)到屏幕上

常见格式符

%c      //字符型格式符

%d      //整型输出

%ld     //长整型输出

%x      //以十六进制数形式输出整数,或输出字符串的地址

%o      //以八进制数形式输出整数

%u      //以十进制数输出unsigned型数据(无符号数)

%s       //用来输出一个字符串

%f       //用来输出实数,以小数形式输出,默认情况下保留小数点6位

%lf      //double型

%p     //地址打印

变量的作用域和生命周期

作用域( scope )是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效 / 可用

的而限定这个名字的可用性的代码范围就是这个名字的作用域。

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

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

生命周期

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

变量创建的本质:

在内存中开辟一块空间,存放数据

销毁:

表示的是把空间换个操作系统

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

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

常量

  1. 字面常量
  2. const 修饰的常变量
  3. #define 定义的标识符常量
  4. 枚举常量(一 一列举)
#include <stdio.h>
//举例
enum Sex
{
 MALE,
 FEMALE,
 SECRET
};
//括号中的MALE,FEMALE,SECRET是枚举常量
int main()
{
    //字面常量演示
    3.14;//字面常量
    1000;//字面常量
    
    //const 修饰的常变量
    const float pai = 3.14f;   //这里的pai是const修饰的常变量
    pai = 5.14;//是不能直接修改的!
    
    //#define的标识符常量 演示
 #define MAX 100
    printf("max = %d\n", MAX);
    
    //枚举常量演示
    printf("%d\n", MALE);
        printf("%d\n", FEMALE);
    printf("%d\n", SECRET);
    //注:枚举常量的默认是从0开始,依次向下递增1的
    return 0;
}

pai 被称为 const 修饰的常变量

变量 pai 不能直接被改变,但是 pai 本质上还是一个变量的,所以叫常变量。

还有要注意的是(千万不要搞混了哦)

'a'--------------------这种是叫字符('')

"a"--------------------这种是叫字符串("")

❤️结语:

本次精彩内容已圆满结束!希望各位读者在阅读过程中能够收获满满。在此,特别感谢各位读者的支持与三连赞。如果文章中存在任何问题或不足之处,欢迎在评论区留言,蜗牛必定会认真对待并加以改进,以便为大家呈现更优质的文章。你们的支持与鼓励,将是博主不断前进的最大动力。再次感谢大家的陪伴与支持!


相关文章
|
8月前
|
弹性计算 运维 安全
操作系统智能助手OS Copilot 测评
我是一名曾担任个人开发者、运维工程师、架构师和产品经理的专业人士,主导过某品牌的全球网站架构及运行保障工作。近期受邀参与OS Copilot的产品体验评测,重点测试了其-t/-f/管道功能。在ECS实例上顺利安装并使用后,发现该产品在提升初级工程师效率方面表现出色,但在多管道支持、模型服务指定、RAM权限配置等方面仍有改进空间。建议优化资源分配模式,简化评测流程,并加强信息安全保护,以更好地满足企业级用户需求。
159 13
|
10月前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第7天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统要求检查与准备、配置安装源、安装 SQL Server 2019、配置 SQL Server 以及数据库初始化(可选)。通过这些步骤,你可以成功安装并初步配置 SQL Server 2019,进行简单的数据库操作。
345 1
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
揭秘深度学习中的自注意力机制及其在现代AI应用中的革新
揭秘深度学习中的自注意力机制及其在现代AI应用中的革新
|
Web App开发 XML JavaScript
10个最好的 JavaScript 模板引擎
JavaScript随着各种神奇的实用功能库日渐丰富,而越来越受到Web开发者与设计师的追捧,例如:jQuery, MooTools, Prototype等。
2419 0
10个最好的 JavaScript 模板引擎
模拟实现库函数memcpy--复制内存块。详细理解内存重叠及精准复制问题
模拟实现库函数memcpy--复制内存块。详细理解内存重叠及精准复制问题
276 0
包图总结篇
包图总结篇
394 0
|
XML Java Linux
centos7 配置 sftp 服务器并通过 java 上传文件
centos7 配置 sftp 服务器并通过 java 上传文件
607 0
|
机器学习/深度学习 算法 PyTorch
集成多种YOLO改进点,面向小白科研的YOLO检测代码库YOLOAir
集成多种YOLO改进点,面向小白科研的YOLO检测代码库YOLOAir
282 0
|
消息中间件 API 芯片
RT-Thread记录(十六、SFUD组件 — SPI Flash的读写)
从本文开始,测试学习一些 RT-Thread 常用的组件与软件包,先从刚学完的 SPI 设备开始。
1270 0
RT-Thread记录(十六、SFUD组件 — SPI Flash的读写)
|
存储 Java 应用服务中间件
Maven - 依赖作用域与生命周期
Maven - 依赖作用域与生命周期
184 0