C语言(1):初识C语言

0 安装vs2022

见 鹏哥视频即可

1 什么是C语言

c语言擅长的是底层开发

现在一般用的是C89和C90的标准

主要的编辑器:

2 第一个C语言项目

.c 源文件 .h头文件 .cpp c++文件

c语言代码中一定要有main函数

标准主函数的写法:

int main()
{
return 0;
}

注意和java一样是先后呼应的!

#include <stdio.h> 
//C语言规定main是代码执行的入口,只能写一个,必须有!!!!!!
// 是为了导入printf这个库,才可以打印
//std 标准 i-input o- output输入输出
int main() {printf("hello world");return 0;
}
//运行代码ctrl+F5
//为什么 return 0 历史习惯:正确的返回是0 错误的话返回1

运行代码:ctrl+F5

3 数据类型

char         // 字符数据类型
short       // 短整型
int         // 整形
long         // 长整型
long long   // 更长的整形
float       // 单精度浮点数
double       // 双精度浮点数【精度更高一些】
//C 语言有没有字符串类型?
#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;
}

上面输出的单位是字节!

计算机中的单位:

1 byte = 8 bit

类型的使用:

char ch = 'w';
int weight = 120;
int salary = 20000;

本质是向计算机申请空间!

4 变量和常量

4.1 局部变量和全局变量

b是全局变量 a是局部变量!

在统一个范围里同一个变量名不能重复定义!

 局部优先!

#include <stdio.h>
int global = 2019;//全局变量
int main()
{int local = 2018;//局部变量//下面定义的global会不会有问题?int global = 2020;//局部变量printf("global = %d\n", global);return 0;
}

输入函数scanf 输出函数printf

输出两个整数的和:

#include <stdio.h>
int main()
{int num1 = 0;int num2 = 0;int sum = 0;printf("输入两个操作数:>");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("sum = %d\n", sum);return 0;
}

一定要在第一行放!!!

对scanf报错了:解决办法有两个!

但是建议在源文件的第一行上加入:#define

有一个一劳永逸的办法就是在newc++file.cpp 文件里加入 #define _CRT_SECURE_NO_WARNINGS 即可!!这样每次创建的.c文件时都会自己出来在第一行!

printf打印%d %c等含义

%d - 打印整型

%c- 打印字符

%s- 打印字符串

%f- 打印float类型的数据

%1f- 打印double类型的数据

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

作用域
作用域( scope )是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效 / 可用
而限定这个名字的可用性的代码范围就是这个名字的作用域。
1. 局部变量的作用域是变量所在的 局部范围
2. 全局变量的作用域是整个工程。
【一个括号就是一个范围!】
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>int a = 10;
void test() {printf("test-->%d\n", a);
}int main() {test()printf("a=%d\n", a);{printf("a=%d\n", a);}
}

如果想要调用的a实在另外一个文件里定义的话:

只需要加入:

extern int a;

生命周期
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
2. 全局变量的生命周期是:整个程序的生命周期。

4.3 常量

常量是不变的!用来描述不变的东西!

C 语言中的常量分为以下以下几种:

1、字面常量

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>// 字面常量
int main(){30;3.14;'w';//字符"abc";//字符串return 0;}

2、const 修饰的常变量【不能改变了】

一般定义后的a在后面是可以被覆盖的,但是如果不想被修改就可以在创建的时候加上const!!!
上面例子上的a   被称为 const 修饰的常变量, const 修饰的常变量在 C 语言中只是在语法层面限制了 变量 a 不能直接被改变,但是 a 本质上还是一个变量的,所以叫常变量。
arr[n]中的n是常量不能是变量!!!!

3、#define 定义的标识符常量

4、枚举常量

枚举的东西从0开始

5 字符串

5.1 字符和字符串

空格也是字符!

字符--是一个字母,用单引号

字符串--是多个字母,用双引号

但是C语言里只有字符类型,没有字符串类型!字符串用数组的类型进行存储!

字符串是以\0作为结束的!【自己分开创建的时候要注意】

如果不弄\0时,打印的时候会一直打印到遇到\0才停止

打印字符串的长度

不数\0

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<string.h>//引入头文件(才可以用strlen)!!!!!!int main()
{char arr1[] = "bit";char arr2[] = { 'b', 'i', 't' };char arr3[] = { 'b', 'i', 't', '\0' };int len = strlen("abc");printf("%d\n", len);return 0;
}

5.2 转义字符

\ddd 和 \xdd 注意\ddd表示八进制数的时候后面的数字都不能超过8哦!

\130表示的是将8进制下的,130转换成10进制后得到的整数数字按照ASCII表对应找到字符类型输出!

\x63 表示的是16进制下的数字是 63

ASCII表

把被一个字符都编一个号方便计算机的二进制存储!

很无语的题:

转义字符合在一起是一个字符!

6 注释

前面加//

或者/* */ 适合于很长一段

快捷键:

//注释多行快捷键

Ctrl+k

ctrl+l

//解注释多行快捷键

Ctrl+k

ctrl+u

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/2778.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot 集成 i18n实现国际化信息返回 实现中英文切换 实现网站支持多语言切换

还是直接上代码 目前实现了 中英文 返回 别的语言 都差不多 主要用spring boot 自带的 类实现的 不用引入任何 依赖 使用的就是下面的类 org.springframework.context.MessageSource 是 Spring Framework 中用于支持国际化&#xff08;Internationalization&#xff0c;简称 i…

Java程序的生命周期

ava程序的生命周期指的是程序从编写到结束的整个过程&#xff0c;可以分为以下几个阶段&#xff1a; 编写阶段&#xff1a;程序员使用Java语言编写程序&#xff0c;包括编写源代码、编译、调试等工作。 编译阶段&#xff1a;编译是将Java源代码转换成Java字节码的过程。Java源…

大模型入门指南

随着 ChatGPT 的到来&#xff0c;大模型[1]&#xff08;Large Language Model&#xff0c;简称 LLM&#xff09;成了新时代的 buzzword&#xff0c;各种 GPT 产品百花齐放。 大多数人直接用现有产品就可以了&#xff0c;但对于喜欢刨根问底的程序员来说&#xff0c;能够在本地…

华为机考入门python3--(18)牛客18- 识别有效的IP地址和掩码并进行分类统计

分类&#xff1a;字符串 知识点&#xff1a; 字符串是否由数字组成 my_str.isdigit() 字符串填充 不足8位左侧填充0 my_str.zfill(8) 题目来自【牛客】 import sys def classify_ip(ip_mask): ip_class, is_private_ip, mask_class ignore_ip, 0, valid_mask# 解…

SQL注入漏洞代码分析

1.代码分析 HTML代码 <form action"#" method"GET"><input type"text" name"id"><input type"submit" name"Submit" value"Submit"> </form>action“#”&#xff0c;将数据提…

Hbase java API与过滤器

一、Hbase java API&#xff1a; 1、创建一张表 2、删除一张表 3、向一张表中添加一条数据 4、向一张表中同时添加一批数据 5、获取一条数据 6、获取一批数据 7、创建预分region表 代码实现&#xff1a; import org.apache.hadoop.conf.Configuration; import org.apa…

Spring boot + MyBatis-Plus3

学习 增删改查 在 service 层直接调用。 insert(user) 增selectById(1) 根据id查updateById(user) 更新selectByMap(map) 根据条件查selectBatchIds(list) 根据多个id查selectPage(page, null) 分页查deleteById(1) 删除id为1的用户deleteByMap(map) 删除符合条件的用户d…

【C++】日期计算机

个人主页&#xff1a;救赎小恶魔 欢迎大家来到小恶魔频道 好久不见&#xff0c;甚是想念 今天我们要讲述的是一个日期类计算机的代码实现 引言&#xff1a; 我们日常生活中可能会有一个烦恼。 今天几月几号&#xff1f;过n天后又是几月几号&#xff1f;某年某月某天和x年…

MySQL你想知道序列当前生成的值,你可以使用SHOW TABLE STATUS命令或者查询information_schema数据库

在MySQL中&#xff0c;如果你想知道序列当前生成的值&#xff08;例如&#xff0c;自增主键的当前值&#xff09;&#xff0c;你可以使用SHOW TABLE STATUS命令或者查询information_schema数据库。 使用SHOW TABLE STATUS命令&#xff1a; 这个命令可以显示关于表的各种信息&…

比特币中的符文是什么?

比特币中的符文是什么&#xff1f; 比特币符文是存在于比特币区块链上的独特的、可替代的代币。它们旨在代表具有独特特征和元数据的可替代资产。 Ordinals 协议的创建者 Casey Rodamor 最近放弃了一项替代 BRC-20 可替代代币协议的提案&#xff0c;该替代方案被称为 Runes。 破…

【k8s】Kubernetes 1.29.4离线安装部署(总)

&#xff08;一&#xff09;kubernetes1.29.4离线部署之-安装文件准备 &#xff08;二&#xff09;kubernetes1.29.4离线部署之-镜像文件准备 &#xff08;三&#xff09;kubernetes1.29.4离线部署之-环境初始化 &#xff08;四&#xff09;kubernetes1.29.4离线部署之-组件安装…

掌握Linux Shell脚本函数:提高脚本效率与可维护性

目录标题 1、什么是Shell函数&#xff1f;2、如何定义Shell函数&#xff1f;3、Shell函数参数4、返回值5、实例&#xff1a;使用函数进行文件备份6、为什么使用函数&#xff1f;7、最佳实践 在编写Linux shell脚本时&#xff0c;函数是组织和重用代码的重要手段。本文将介绍如何…

Python实现定时任务的八种方式

在实际的软件开发过程中,经常需要执行定时任务,比如定时备份数据、定时发送邮件、定时清理缓存等。Python作为一种功能强大的编程语言,提供了多种方式来实现定时任务。本文将介绍Python实现定时任务的八种常用方法,并提供相应的代码示例。 1. 使用​​time.sleep()​​函数…

rt1052 模拟hard fault

uint32_t u32Addr ((uint32_t)0x5FFFFFFF); //定义一个单片机不存在的地址 uint32_t u32StackTop *((__IO uint32_t *)u32Addr); //读取这个不存在的地址 //会进入 void HardFault_Handler(void) 中断

现货白银价格走势分析别走弯路!

参与现货白银投资离不开对其价格走势的分析&#xff0c;虽然相关的分析方法有很多种&#xff0c;但说到直观高效的方法&#xff0c;技术分析就是很多专业投资者所钟爱的选择。投资者可以通过平台交易软件所自带的技术指标和画线工具&#xff0c;来辅助自己的分析&#xff0c;实…

移动端js事件、zeptojs、swiper、bootstrap、正则表达式、前端性能优化

移动端场景下的js事件&#xff0c;制作移动端特效常用的js库&#xff0c;介绍移动端常用开发框架Bootstrap 一、移动端js事件 移动端的操作方式和PC端是不同的&#xff0c;移动端主要用手指操作&#xff0c;所以有特殊的touch事件&#xff0c;touch事件包括如下几个事件&…

前缀和 求数列的子序列的K倍区间

(直接截图比复制文字要好多了) 不会做的时候我去看了之前做的关于这道题目的笔记&#xff0c; &#xff08;Ak 1&#xff09;% k 1 &#xff08;Ak 1 Ak&#xff09;% k 1 只要发现了同余数的情况就说明有一个区间满足了题目的要求。 这个方法的精妙之处就在于前缀和包括了…

嵌入式Linux driver开发实操(二十一):linux device driver basic设备驱动程序基础

linux的架构框图: 内核空间是内核(即操作系统的核心)执行(即运行)并提供其服务的地方。 用户空间是执行用户应用程序的地方。 内核模块是可以根据需要加载和卸载到内核中的代码片段。它们扩展了内核的功能,而无需重新启动系统。自定义代码可以通过两种方法添加到Linux内…

C++ —— 继承

什么是继承&#xff1f; 继承是指一种代码可以被复用的机制&#xff0c;在一个类的基础上进行扩展&#xff0c;产生的新类叫做派生类&#xff0c;被继承的类叫基类。&#xff08;也可称为子类和父类&#xff09; 继承的写法&#xff1a; class B : 继承方式 A (…

Java高级阶段面试题库(Redis数据库、MQ消息队列、kafka、SpringBoot + SpringCloud、MySQL、JVMJUC、其它)

文章目录 1. Redis数据库篇(忽略)1.1 简单介绍一下redis1.2 单线程的redis为什么读写速度快?1.3 redis为什么是单线程的?1.4 redis服务器的的内存是多大?1.5 为什么Redis的操作是原子性的&#xff0c;怎么保证原子性的&#xff1f;1.6 你还用过其他的缓存吗&#xff1f;这些…