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…

大模型入门指南

随着 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# 解…

【C++】日期计算机

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

比特币中的符文是什么?

比特币中的符文是什么&#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;函数是组织和重用代码的重要手段。本文将介绍如何…

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

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

前缀和 求数列的子序列的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;这些…

学习Django

1.python安装是会有几个主要目录&#xff1a; 2.如果某个路径加入了环境变量&#xff0c;那么在命令行直接输入他下面的文件就能找到&#xff0c;不用输入完整路径 2.过程 &#xff08;1&#xff09;安装 &#xff08;2&#xff09;建项目 在终端&#xff1a; &#xff08;…

快速回复app是什么样

在电商领域&#xff0c;掌握一些必备的软件工具是提高工作效率、优化运营流程以及提升用户体验的关键。本文将为您介绍做电商必备的几个软件&#xff0c;帮助您更好地开展电商业务。 ​ 快速回复APP&#xff1a;重新定义沟通效率 在快节奏的现代社会中&#xff0c;人们对于沟通…

ZeRO论文阅读

一.前情提要 1.本文理论为主&#xff0c;并且仅为个人理解&#xff0c;能力一般&#xff0c;不喜勿喷 2.本文理论知识较为成体系 3.如有需要&#xff0c;以下是原文&#xff0c;更为完备 Zero 论文精读【论文精读】_哔哩哔哩_bilibili 二.正文 1.前言 ①为什么用该技术&…

Linux网络设置

将Linux主机接入到网络&#xff0c;需要配置网络相关设置 一般包括&#xff1a;主机名&#xff1b;IP/netmask&#xff1b;路由&#xff1a;默认网关&#xff1b;DNS服务器&#xff1a;主DNS服务器&#xff0c;次DNS服务器&#xff0c;第三个DNS服务器 网卡的配置文件在&…

java:观察者模式

java&#xff1a;观察者模式 1 前言 观察者模式&#xff0c;又被称为发布-订阅&#xff08;Publish/Subscribe&#xff09;模式&#xff0c;他定义了一种一对多的依赖关系&#xff0c;让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时&#xff0c;会通知所…

百面算法工程师 | 卷积基础知识——Convolution

目录 8.1 图像卷积过程 8.2 卷积层基本参数 8.3 卷积后图像的长和宽大小的计算方式 8.4 卷积神经网络中的权重共享 8.5 上采样中的反卷积 8.6 空洞卷积 8.7 深度可分离卷积 8.8 为什么可分离卷积中Depthwise卷积后还要进行pointwise卷积 8.9 分组卷积 Group Conv 8.1…

AI视频教程下载:ChatGPT个人生产力提升指南

在本课程中&#xff0c;您将学习如何成功地将ChatGPT融入您的工作和生活&#xff0c;以优化您的社交媒体内容并扩展您的业务。 您将学习如何使用ChatGPT自动创建、校对、总结和翻译文本&#xff0c;以及如何与机器人沟通以实现您的目标。 您还将学习如何创建jQuery代码、编程…

倪海厦是怎么去思考问题的(一)下

1《天纪》是自然法则 2自然法则是个《真理》 3《真理》不需要再证实 4《真理》没有二元对立 紧接着第三点&#xff1a;真理不需要再去证实。现在有很多的人呢&#xff0c;看书学习&#xff0c;自认为自己很聪明&#xff0c;总要去证实一些东西。证明谁的说法是错的&#xff…