01.初识C语言1

news/2024/4/29 20:04:00/文章来源:https://blog.csdn.net/m0_47017197/article/details/127605803

一、前期准备

1.gitee网址(代码托管网站):工作台 - Gitee.com

Git教程 - 廖雪峰的官方网站 (liaoxuefeng.com)

用法:

1)新建仓库

2)随意勾选

 

3)网络仓库构建完成

2.所学知识:计算机语言、算法和数据结构、操作系统、计算机网络、项目实战

二、了解C语言的基础知识

1.什么是C语言?

C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语 言。

二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制 定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。

2.安装VS2019

------------------------------------------集成开发环境(英文缩写:IDE)-----------------------------------

编辑器

编译器

链接器

调试器

Visual Studio 2022 IDE - 适用于软件开发人员的编程工具 (microsoft.com)

3.前情

1.创建项目

创建后出现此界面即可 

 如果没有出现,视图-解决方案资源管理就可以出现

 

 2.创建源文件

.h header头文件

.c 源文件

我们一般把代码放在.c文件中

1)添加源文件

 3.写代码

//解释:
//main函数是程序的入口
//一个工程中main函数有且仅有一个
//一个工程(项目)中可以有多个.c文件,但是多个.c文件中只能有一个main函数
//include 是包含的意识
//下面的代码就是包含stdio.h这个头文件
//stdio - standard input output 标准输入输出头文件

//int - 整型 - 整数
//printf - 打印函数
//专门用来在屏幕上打印数据的
//是C语言标准库中提供的一个库函数

#include <stdio.h>
int main()
{printf("hello bit\n");printf("he he\n");return 0;
}

 常见错误:

#include<stdio.h>
int main(){
    printf("my favourite TV is modren family\n");
    printf("you are my baby\n");
    return 0;
}

不同的.c可以调用到主函数

一个项目只能有一个主函数

4.数据类型

//%d - 打印10进制的整数
//%c - 打印字符

//sizeof 是一个操作符,是计算变量的大小的

按一下键盘上的:ctrl+F5(运行)

//字节的换算:

1 B/byte(字节) = 8 bit(比特)(位) 。

1 KB(千字节) = 1024 B/byte(字节) 。

1 MB = 1024 KB 。

1 GB = 1024 MB 。

1TB =1024 GB 。

1 PB = 1024 TB 。

1 EB = 1024 PB。

char        //字符数据类型

short       //短整型

int         //整形

long        //长整型

long long   //更长的整形

float       //单精度浮点数//浮点数--小数点可以浮动,所以可称浮点数

double      //双精度浮点数

sizeof() 是一种内存容量度量函数,功能是返回一个变量或者类型的大小(以字节为单位);在 C 语言中,sizeof() 是一个判断数据类型或者表达式长度的运算符。

返回值:内存所占字节数

计算机常见的单位

bit

byte

KB

MB

GB

TB

PB

#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));return 0;
}

注意:存在这么多的类型,其实是为了更加丰富的表达生活中的各种值。

类型的使用:

char ch = 'w';

int weight = 120;

int salary = 20000;

5.变量 

生活中的有些值是不变的(比如:圆周率,性别,身份证号码,血型等等)

有些值是可变的(比如:年龄,体重,薪资)。

不变的值,C语言中用常量的概念来表示,变得值C语言中用变量来表示。

1)定义变量的方法

int age = 150;
float weight = 45.5f;
char ch = 'w';

2)变量的名字

只能由字母(包括大写和小写)、数字和下划线( _ )组成。

不能以数字开头。

长度不能超过63个字符。

变量名中区分大小写的。

变量名不能使用关键字。

3)变量的分类

变量分为:全局变量和局部变量

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

上面的局部变量global变量的定义其实没有什么问题的!

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

4)变量的使用

//这里介绍一下输入:scanf

//输出语句:printf 

//在创建变量的同时给一个初始值

scanf容易出现错误, 需要在底下的提示复制其中的部分

#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;
}

5)变量的作用域和生命周期 

变量必须赋初值

全局变量:可以先声明,后使用

局部变量:必须有初值

作用域
作用域(scope)是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用
的而限定这个名字的可用性的代码范围就是这个名字的作用域。
1. 局部变量的作用域是变量所在的局部范围。(int main()内部)
2. 全局变量的作用域是整个工程。(int main()外部)
生命周期
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
2. 全局变量的生命周期是:整个程序的生命周期。

//全局变量可以在主函数内部调用

//printf()函数只能在函数内部执行

//注意:编译器自上而下

//如果在下面定义了全局变量,而前面用了,需要声明int g_a;最好是在前面写

//同一项目可以跨文件进行使用;

//extern声明外部符号:extern int g_a

6)常量

C语言中的常量和变量的定义的形式有所差异。
C语言中的常量分为以下以下几种:
1.字面常量:1 3 3.3 5 10(直接写出来,就可以看出来)
2.const 修饰的常变量,(不能修改了,但仍被认为是变量)(虽然不能变,但本质上仍然是变量(不能放进数组arr[M])

3.#define 定义的标识符常量(可以放进数组arr[M])

4.枚举常量:0 1 2 3 4 5

//枚举就是一一列举

//血型,性别,三原色(-Red Green Blue)都可以一一列举

EG:

#include <stdio.h>
//举例
enum Sex
{MALE,//0FEMALE,//1SECRET//2
};
//括号中的MALE,FEMALE,SECRET是枚举常量
//枚举分别对应:0,1,2
int main()
{const float pai = 3.14f;   //这里的pai是const修饰的常变量const float pais=5.14;//是不能直接修改的!printf("pais=%d pais=%d\n", pai, pais);//#define的标识符常量 演示
#define MAX 100printf("max=%d\n", MAX);//枚举常量演示printf("%d\n", MALE);printf("%d\n", FEMALE);printf("%d\n", SECRET);return 0;
}

4. 字符串+转义字符+注释

//C语言提供了一个库函数,可以计算字符串的长度

//strlen()

//数长度时,\0不算字符长度

//无\0的长度不能得出,因为其后的数是随机的

//字符必须用转义字符引起来

1)字符串

这种由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal),或者简称字符串。

注:字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串内容。

//%s 打印字符串

#include <stdio.h>
//下面代码,打印结果是什么?为什么?(突出'\0'的重要性)
int main()
{char arr1[] = "bit";char arr2[] = { 'b', 'i', 't'};char arr3[] = { 'b', 'i', 't','\0' };//数组printf("%s\n", arr1);printf("%s\n", arr2);printf("%s\n", arr3);return 0;
}

2)转义字符

\\转义:转变原来的意思

#include <stdio.h>
int main()
{printf("c:\code\test.c\n");return 0;
}
转义字符意义ASCII码值(十进制)
\a警告字符,响铃(BEL)007
\b退格(BS) ,将当前位置移到前一列008
\f换页(FF),将当前位置移到下页开头012
\n换行(LF) ,将当前位置移到下一行开头010
\r回车(CR) ,将当前位置移到本行开头013
\t水平制表(HT) 009
\v垂直制表(VT)011
\'单引号039
\"双引号034
\\反斜杠092
#include <stdio.h>
int main()
{//问题1:在屏幕上打印一个单引号',怎么做?//问题2:在屏幕上打印一个字符串,字符串的内容是一个双引号“,怎么做?printf("%c\n", '\'');printf("%s\n", "\"");return 0;
}
//程序输出什么?
#include <stdio.h>
int main()
{printf("%d\n", strlen("abcdef"));// \62被解析成一个转义字符printf("%d\n", strlen("c:\test\628\test.c"));return 0;
}

5.注释

#include <stdio.h>
int Add(int x, int y)
{return x+y;
}
/*C语言风格注释
int Sub(int x, int y)
{return x-y;
}
*/
int main()
{//C++注释风格//int a = 10;//调用Add函数,完成加法printf("%d\n", Add(1, 2));return 0;
}

注释有两种风格:

C语言风格的注释 /*xxxxxx*/

缺陷:不能嵌套注释(一般别用)

C++风格的注释 //xxxxxxxx

可以注释一行也可以注释多行

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

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

相关文章

【期末大作业】基于HTML+CSS+JavaScript网上订餐系统(23个页面)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

Jetson Orin 平台单进程采集四路独立video调试记录

1. 概述 现在有4个摄像头, 如何捕获4个摄像头(/dev/video0 - video3)在一个进程像这样: 现在只能捕捉一个相机使用gst-launch如下: gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,width=1280,height=720 ! videoconvert ! video/x-raw,format=I420 ! xvimagesi…

《设计模式:可复用面向对象软件的基础》——行为模式(2)(笔记)

文章目录五、行为模式5.5 MEDIATOR(中介者)1.意图补充部分2.动机3.适用性4.结构5.参与者6.协作7.效果8.实现9.代码示例10.相关模式5.6 MEMENTO ( 备忘录)1.意图2.别名3.动机4.适用性5.结构6.参与者7.协作8.效果9.实现10.代码示例11.相关模式5.7 OBSERVER (观察者)1.意图2.别名3…

21.C++11

C11的官网&#xff1a;C11 - cppreference.com 1.C11简介 在2003年C标准委员会曾经提交了一份技术勘误表(简称TC1)&#xff0c;使得C03这个名字已经取代了C98称为C11之前的最新C标准名称。不过由于TC1主要是对C98标准中的漏洞进行修复&#xff0c;语言的核心部分则没有改动&am…

Java语言实现猜数字小游戏

之前笔者在学习C语言的初级阶段&#xff0c;就已经实现了用C语言简单实现猜数字小游戏&#xff0c;既然笔者最近在学习Java的初级阶段&#xff0c;那么&#xff0c;也应该写一个Java语言实现的猜数字小游戏&#xff01;&#xff01; C语言实现猜数字小游戏&#xff1a;原文链接…

浏览器播放rtsp视频流:4、jsmpeg+go实现局域网下的rtsp视频流web端播放

文章目录1.前言2.资料准备3.兼容性及适用性说明4.jsmpeg架构5.基于以上架构的go方案可行性分析6.编译和结果展示&#xff08;编译坑点&#xff09;7.最后1.前言 之前的rtsp转webrtc的方案存在如下缺陷&#xff1a;1.只支持h264&#xff1b;2.受限于webrtc的理解难度以及搭建tu…

Hproxy项目前端

hproxy项目前端使用vue-element-admin框架&#xff0c;页面为hook列表&#xff0c;和一个添加hook页面。 添加路由 编辑src/router/index.js文件&#xff0c;在constantRoutes列表追加如下路由内容 {path: /hproxy,component: Layout,redirect: /hproxy/index,hidden: false,c…

各省市软考准考证打印时间,一起来看!

距离软考还有一周&#xff0c;各个省市的准考证也开始打印了&#xff01; 各地防疫政策一定要遵守&#xff0c;不然错过&#xff0c;又等一年&#xff01; 周末也有一些省市因疫情推迟、取消考试的。 一起来看&#xff01; 考完之后&#xff0c;会在这里讨论一些答案&#x…

UWB室内定位系统铸造智能化企业安全管理系统

进入工业4.0时代以来&#xff0c;数字技术不断成熟、扩散和融合&#xff0c;加速推动工业企业数字化、智能化转型。企业推进数字化转型要整体规划、分布实施&#xff0c;需要考虑企业经营管理活动的全过程、全范围、全层级。各大行业已经开始配备UWB人员定位系统&#xff0c;提…

电脑C盘怎么清理到最干净

如果你的电脑C盘运行内存已经快满了&#xff0c;这个时候你怎么处理&#xff1f;让我们来看看如何清理C盘。 c如何清理盘&#xff1a; 方法一&#xff1a;存储状态 点击电脑win键&#xff0c;在设备左侧弹出提示框&#xff0c;进入系统配置&#xff0c;然后点击系统软件选项…

MyBatis Plus实现动态字段排序

利用周末时间&#xff0c;对已有的项目进行了升级&#xff0c;原来使用的是tkmybatis&#xff0c;改为mybatis plus。但是由于修改了返回数据的格式&#xff0c;前端页面字段排序失效了&#xff0c;需要刷新表格才会排序。页面效果如下 easyui的数据表格datagrid支持多字段排序…

商用车进入回暖周期,哪些供应商在领跑「主动安全」前装赛道

由于受到经济周期性影响&#xff0c;去年开始商用车市场出现一波下行行情。 中国汽车工业协会发布数据显示&#xff0c;2022年1-9月&#xff0c;商用车产销分别完成242.6万辆和248.4万辆&#xff0c;同比下降32.6%和34.2%&#xff0c;降幅较1-8月收窄1.5个百分点和2个百分点&a…

ZAB协议

1、定义 ZAB 协议全称&#xff1a;Zookeeper Atomic Broadcast&#xff08;Zookeeper 原子广播协议&#xff09;。 ZAB 协议是为分布式协调服务 Zookeeper 专门设计的一种支持 崩溃恢复 和 原子广播 协议&#xff0c;基于该协议&#xff0c;Zookeeper 实现了一种 主备模式 的…

什么是行内元素的盒模型

目录 行内元素的盒模型 display 可选值&#xff1a; visibility 可选值&#xff1a; 行内元素的盒模型 行内元素不支持设置宽度和高度 但是这并不是说明行内元素没有内容区 而是通过width和height不能改变内容区的大小 行内元素的内容区是由他里面的内容决定的&#xff0…

【视觉基础篇】14 # 如何使用片元着色器进行几何造型?

说明 【跟月影学可视化】学习笔记。 如何用片元着色器控制局部颜色&#xff1f; 把图片绘制为纯黑色&#xff1a; const fragment #ifdef GL_ESprecision highp float;#endifvarying vec2 vUv;void main() {gl_FragColor vec4(0, 0, 0, 1);} ;根据纹理坐标值来绘制&#…

工地ai智能视频监控系统

工地ai智能视频监控系统在监控摄像头监控的画面范围之内&#xff0c;对人的不安全行为&#xff08;违规行为&#xff09;或者物的不安全状态进行实时分析识别&#xff0c;当工地ai智能视频监控系统发现现场违规行为时&#xff0c;可根据需要设置各种警戒要求&#xff0c;工地ai…

【计算机网络--物理层】编码和调制与数据交换方式

注&#xff1a;最后有面试挑战&#xff0c;看看自己掌握了吗 文章目录基带信号与宽带信号基带信号宽带信号小结编码与调制编码调制的方法数字数据编码为数字信号数字数字调制为模拟信号模拟数据编码为数字信号模拟信号调制为模拟信号数据交换电路交换报文交换分组交换数据报方式…

windows系统命令行查看已连接过的WiFi密码

展示所有连接过的WiFi列表netsh wlan show profiles 显示具体某个WiFi的密码netsh wlan show profiles name="XXXXXX" key=clear name - 所要显示配置文件的名称。就是WiFi的名称 interface - 已配置此配置文件的接口的名称。 key - 以纯…

跨境电商万圣节社媒营销:8个方法助你冲出重围

今天是西方一年一度的万圣节前夜&#xff0c;同时也是跨境电商第四季度第一个大促日。Nox聚星获悉&#xff0c;2022年万圣节期间会有69%的美国民众参与这场万圣节狂欢&#xff0c;预计人均消费将达到100.45美金&#xff0c;预计将产生106亿的销售额。作为四季度第一个促销日&am…

【飞桨PaddleSpeech语音技术课程】— 多语言合成与小样本合成技术应用实践

(以下内容搬运自飞桨PaddleSpeech语音技术课程&#xff0c;点击链接可直接运行源码) 多语言合成与小样本合成技术应用实践 一 简介 1.1 语音合成的简介 语音合成是一种将文本转换成音频的技术。通常语音合成的整体流程如图1所示。可以分为&#xff1a;文本前端&#xff0c;…