C语言初识(一)

目录

前言

一、什么是C语言?

二、第一个C语言程序

(1)创建新项目

(2)编写代码

(3)main函数

三、数据类型

四、变量、常量

(1)变量的命名

(2)变量的分类

(3)变量的使用

(4)_CRT _SECURE_NO_WARNINGS问题


前言

C语言是万物之母,C生万物,但大家要不只只学会C语言,还要学习学好计算机语言,算法,数据结构,操作系统,计算机网络,项目实战,数据库MySQL等等。

但是根据我的总结,C语言基础打好后,其它的都很好理解,很好学习和读懂,有助于后来专业领域的学习。

一般我写C语言是用的VSstdio2022(个人感觉非常好使),大家可以用其它编辑器,选择自己喜欢的来编写代码真的很高效。

学习闲暇时间用一些网站来刷题,例如牛客网,洛谷,pta,leetcode等等。

 本篇文章来介绍C语言的各个知识,不做深入了解,后续文章深入了解每个知识点,如果学过的也可以大致看看,看看自己C语言有没有漏洞,经常反思才会有所进步。

——————————————————————————————————————————— 

一、什么是C语言?

C语言是一门通用的计算机编程语言(人和计算机进行交流的语言,例如:C C++,JAVA,Python,go等等),现在已经有上千种语言,C语言只不过是其中的一种语言,广泛(善于)用于底层开发(例如操作系统可以使电脑(硬件)工作,而在他们之间还有一个驱动,实际就是操作系统调用驱动来使电脑工作,操作系统上可以装很多软件,操作系统以上一般叫做上层软件开发,以下也就是下层或者底层开发,也就是操作系统及以下,linux就是用C语言写的,早起的QQ也是用C语言写的,驱动也是用C语言写的)。C语言的设计目标就是提供一种能以简易的方式编译、处理低级存储器、产生少量机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好的跨平台的特性,以一个标准写出的C语言可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

二十世纪八十年代,为了避免各开发商用的C语言语法产生差异,有美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。

早期计算机能够识别的是二进制,也就是1和0,如果用二进制来写的话,自己肯能会眼花缭乱,以前都要查手册来写二进制功能,后来也就出来了助记符(汇编语言),例如100001对应ADD等,后来人们对于汇编语言也有些吃力和不满意,于是演化出了B语言,又演化出了C语言,就出现了越来越多的计算机语言。这些语言都叫做高级语言,而二进制和汇编语言叫做低级语言。

不同厂商推出了不同的C语言版本,所以国际标准出现了,C89,C90,C99,C11......最常用的还是C89 C90,虽然没有固定标准,但一般将C99之后的C语言标准称为“现代C语言”;目前的最新标准为C23,只有国际标准的语言才值得去学习;

C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同,其编辑器主要有Clang(苹果公司开发),GCC(Linux),WIN-TC(用的较少),SUBLIME(可以配置编辑器编译C,但不推荐),MSVC(VS用的编辑器,VS底层就是),Tuebo C等。

二、第一个C语言程序

(1)创建新项目

1.首先创建一个项目

例如我用的是VS2022(也可以用VS2019):

打开后左边这些是之前写过的文件,第一次打开左边是什么都没有的,我们选择创建新项目。

之后选到C++,选择空项目,进入配置页面。

这里可以命名项目的名称,这里写一个有意义有价值的名字,尽量不要写中文,因为他对中文的兼容性不是很好,这样将来才会知道自己写的是什么,以及项目的存储地址,完成后点击创建,一个新的空项目就创立了出来。 

创建出来的页面是这样的:

如果没有左边的框,点击视图,选择里面的解决方案资源管理器,就出现了。 

之后创建源文件,在写C语言代码的时候把代码放在文件中,.h后缀叫做头文件,.c后缀叫源文件,右击源文件,选择添加文件,选择.cpp文件,然后起一个比较有价值的名字,如果是C程序,后缀写.c,如果是c++,后缀写.cpp.

(2)编写代码

#include<stdio.h>//库文件int main() //主函数
{printf("hello world\n");return 0;
}

写完后按Ctrl+F5就可以编译代码,按F10就可以分步骤运行(而且从主函数的第一行开始执行),产生结果,主函数是程序的入口,一个C语言代码中必须要有主函数,新手还是要自己打一遍,加深印象。 

(3)main函数

但一个工程(项目)中可以有多个.c文件,多个.c文件中只能有一个main函数,让一个主函数统领一个工程就行

include 是包含的意思

int 整形 整数

printf 打印函数 ,专门用来在屏幕上打印数据的 ,是C语言标准库中提供的一个库函数。

在使用这个库函数的时候要包含stdio.h头文件,std-standard叫标准 i-input  o-output ,其实叫做标准输入输出头文件。如果想使用这样的函数,就要包含头文件,没有可以不写。

#include <stdio.h>
void main()
{printf("xxx");
}

上边的是老式的写法

#include <stdio.h>
int main(void)
{printf("XXX");return 0;
}

 这里面的void,就相当于没放一样,这里main函数不需要参数

int main(int argc,char argv[])
{return 0;
}

 这里指main函数有两个参数,这两个参数是有特殊意义的,如果此时此时可不需要这些参数,可以不写,但写了不用这些参数也可以。

三、数据类型

char字符数据类型
short短整型
int整形
long长整型
long long更长整形
float单精度浮点数
double双精度浮点数

前五个都是属于Int整形范畴,后两个是浮点数(小数),因为小数可以用科学计数法来表示,所以在C语言里叫做浮点数。

#include <stdio.h>
int main()
{printf("%d\n",sizeof(char));          //1printf("%d\n",sizeof(short));         //2printf("%d\n",sizeof(int));           //4printf("%d\n",sizeof(long));          //4printf("%d\n",sizeof(long long));     //8printf("%d\n",sizeof(float));         //4printf("%d\n",sizeof(double));        //8return 0;
}

这里计算出各个类型占了多少空间,运行出来分别对应注释部分,单位为字节,计算机常见单位:bit-比特位,byte-字节,kb,mb,gb,tb,pb。

1 byte = 8bit

1KB = 1024 byte

1MB = 1024 KB

1GB = 1024MB

1TB = 1024MB

1PB = 1024TB

每一个类型都有对应着一个范围,可以利用类型的大小来节省存储空间。

由类型创建变量
char ch='w';
printf("%c\n",ch);float weight = 75.5f;//编译器自动识别他是个浮点数类型
double pai=3.14;

四、变量、常量

生活中有些值是不变的(比如:圆周率,年龄,身份证,血型等等),可变的(身高,体重等等),不变的就用常量,变得就是变量。

//创建变量
int age = 18;
double salary =2000.0;//不加f,默认认为是doubke类型,加了默认认为浮点数
int m;        //不是好的习惯,好的习惯是创建变量后给定一个初始值

(1)变量的命名

变量的命名也要有规定,只能是字母(包括大写小写)下划线数字组成 ,不能以数字开头,长度不能超过63个字符,变量名中区分大小写的,变量名中不能使用关键字,在命名时尽量使用一些有意义的名字,例如英文单词,这样更加规范,而且不易混乱,自己写的什么自己知道,别人也知道,大大增加了可读性。

(2)变量的分类

*局部变量

*全局变量

一般来说,大括号外面是全局变量,括号内部是局部变量。不管全局变量放到那里,放到前面还是后边都不耽误他是全局变量。

int a = 10;//全局变量
int main () 
{int b =20;//局部变量return 0;
}

当全局变量和 局部变量名字冲突时候,局部变量优先,建议大家尽量不要冲突,不是一个好的习惯。

(3)变量的使用

什么时候使用,什么时候创建变量,如果写一个代码计算两个数的和

scanf是一个库函数,可以从键盘接收数据

&  取地址符号

#include <stdio.h>
int main()
{int num1=0;int num2=0;int sum=0;scanf("%d%d",&num1,&num2);sum=num1+num2;printf("sum= %d \n",sum);return 0;
}

输入一个数,空格,再输入一个数,就分别为sum1和sum2赋值,之后相加。 

(4)_CRT _SECURE_NO_WARNINGS问题

其中可能会有错误,出现一大堆英文,这是因为scanf导致的其中大致的意思就是不安全,_CRT _SECURE_NO_WARNINGS,我们可以用直接将scanf替代成scanf_s来解决,因为scanf_s只是在VS中使用有用,在其它的编辑器里还是scanf,所以不建议使用scanf_s,怕养成习惯改不过来,另一种解决办法就是推荐的一种。

scanf,strcpy,strcat这些函数VS都会提示不安全

在文件前面定义上这一句话,就可以避免出错。

#define _CRT_SECURE_NO_WARNINGS 1

 为了以后不用写这句话,可以在newc+file.cpp这个文件中加上上面这个代码,以后新建的文件就会自动加上上述代码。就不会出现安全问题了。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

003_动手实现MLP(详细版)

常见的激活的有&#xff1a;RELU,sigmoid,tanh代码 import torch import numpy as np import sys import d2lzh_pytorch as d2l import torchvision from torchvision import transforms # 1.数据预处理 mnist_train torchvision.datasets.FashionMNIST(root/Users/wPycharmP…

2024年9月24日历史上的今天大事件早读

1550年9月24日 明代戏剧家汤显祖出生 1852年9月24日 法国人吉法尔制造的用蒸汽机推进的飞船试飞成功 1884年9月24日 中国近代化学的先驱徐寿逝世 1905年9月24日 吴樾壮炸五大臣&#xff0c;身殉革命 1909年9月24日 京张铁路通车 1910年9月24日 剧作家曹禺诞生 1930年9月2…

java并发工具包JUC(Java Util Concurrent)

1. 什么是JUC 1.1 JUC简介 JUC&#xff08;Java Util Concurrent&#xff09;是Java中的一个并发工具包&#xff0c;提供了一系列用于多线程编程的类和接口&#xff0c;旨在简化并发编程并提高其效率和可维护性。JUC库包含了许多强大的工具和机制&#xff0c;用于线程管理、同…

【Python报错已解决】NameError: name ‘reload‘ is not defined

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 专栏介绍 在软件开发和日常使用中&#xff0c;BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…

【JVM】JVM执行流程和内存区域划分

是什么 Java 虚拟机 JDK&#xff0c;Java 开发工具包JRE&#xff0c;Java 运行时环境JVM&#xff0c;Java 虚拟机 JVM 就是 Java 虚拟机&#xff0c;解释执行 Java 字节码 JVM 执行流程 编程语言可以分为&#xff1a; 编译型语言&#xff1a;先将高级语言转换成二进制的机器…

飞腾平台perf工具PMU事件集成指南

【写在前面】 飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力&#xff0c;聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域&#xff0c;包含了应用使能套件、软件仓库、软件支持、软件适…

linux信号| 学习信号三步走 | 学习信号需要打通哪些知识脉络?

前言: 本节内容主要讲解linux下信号的预备知识以及信号的概念&#xff0c; 信号部分我们将会分为几个阶段进行讲解&#xff1a;信号的概念&#xff0c; 信号的产生&#xff0c; 信号的保存。本节主要讲解信号 ps:本节内容适合学习了进程相关概念的友友们进行观看哦 目录 什么是…

大模型算法岗常见面试题100道(值得收藏)

大模型应该是目前当之无愧的最有影响力的AI技术&#xff0c;它正在革新各个行业&#xff0c;包括自然语言处理、机器翻译、内容创作和客户服务等等&#xff0c;正在成为未来商业环境的重要组成部分。 截至目前大模型已经超过200个&#xff0c;在大模型纵横的时代&#xff0c;不…

测试从业者需要了解心理学和经济学

对于测试从业者来说&#xff0c;测试工作是一项技术活&#xff0c;但同时它也涉及到经济学和人类心理学一些重要因素。 在理想情况下&#xff0c;我们会测试程序的所有可能执行情况&#xff0c;而在大多数情况下&#xff0c;这几乎是不可能的。即使一个看起来非常简单的程序&a…

828华为云征文|使用华为云Flexus云服务器X搭建部署茶叶商城小程序uniapp

在当今数字化时代&#xff0c;小程序以其便捷、高效的特点成为了众多商家拓展业务的重要渠道。 本文将详细介绍如何使用新购买的华为云 Flexus 云服务器 X 搭建&#xff0c;一个带商品采集功能、H5积分商城、集合拼团、砍价、秒杀、会员、分销等等功能一个茶叶商城小程序。 后端…

共享wifi公司哪家正规合法?具体流程全公开!

随着共享经济时代的到来&#xff0c;以共享wifi为代表的多个项目逐渐成为众多创业赛道中的一大热门&#xff0c;推出共享wifi及其他项目的公司数量也因此呈现出了快速增长的态势。而这也让共享wifi等市场出现了鱼龙混杂的情况&#xff0c;连带着共享wifi哪家公司正规合法等相关…

写作高质量文案很难,文案自动生成器轻松解决

在当今信息爆炸的网络环境中&#xff0c;拥有一篇高质量的文案对于吸引受众、传达信息和实现目标至关重要。然而&#xff0c;写作高质量文案并非易事&#xff0c;它需要作者具备深厚的语言功底、创新的思维以及对目标受众的精准把握。这一系列的要求常常让许多人陷入写作的困境…

Windows电脑使用VNC远程桌面本地局域网内无公网IP树莓派5

目录 前言 1. 使用 Raspberry Pi Imager 安装 Raspberry Pi OS 2. Windows安装VNC远程树莓派 3. 使用VNC Viewer公网远程访问树莓派 3.1 安装Cpolar步骤 3.2 配置固定的公网地址 3.3 VNC远程连接测试 4. 固定远程连接公网地址 4.1 固定TCP地址测试 作者简介&#xff1…

drools规则引擎

1 单个文件 这个大多搜索导的都是把规则放到一个文件&#xff0c;这个是基础&#xff0c;但是实际应用就不太方便。如果你使用的jdk1.8&#xff0c;那么对应的drools版本为7.x 1.1 pom依赖 <drools.version>7.74.1.Final</drools.version> <dependency>&…

KITTI数据集雷达采样点时间戳属性的思考(Failed to find match for field ‘time‘)

最近在SLAM调研期间&#xff0c;看到了FAST-LIO2以及Point-lio这两个比较新的SLAM建图算法&#xff0c;想着上手编译并且运行一下&#xff0c;选择了自己了解到的比较出名的数据集KITTI&#xff0c;想着在上述两个开源算法上上手跑一下&#xff08;原论文并没有使用KITTI数据集…

大功率400mw蓝光可调激光模组价格多少钱

在现代激光技术的快速发展中&#xff0c;大功率400mw蓝光可调激光模组以其卓越的性能和广泛的应用领域&#xff0c;成为了市场上备受瞩目的产品。那么&#xff0c;这款激光模组的价格究竟是多少呢? 大功率400mw蓝光可调激光模组的价格因品牌、规格、销售渠道及促销活动等因素而…

【Python报错已解决】TypeError: forward() got an unexpected keyword argument ‘labels‘

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 专栏介绍 在软件开发和日常使用中&#xff0c;BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…

【机器学习】决策树算法

目录 算法引入 基尼系数&#xff1a; 决策树算法概述 决策树的关键概念 决策树的构建 代码实现 1. 定义决策树节点 2. 计算信息增益 3. 选择最佳分割特征 4. 构建决策树 5. 决策树预测 决策树的评估指标&#xff1a; 决策树的优缺点 优点&#xff1a; 缺点&…

Github优质项目推荐-第一期

文章目录 Github优质项目推荐一、【free-for-dev】&#xff0c;88.4k stars二、【linux-command】&#xff0c;31.5k stars三、【system-design-primer】&#xff0c;270k stars四、【GitHub-Chinese-Top-Charts】&#xff0c;99.1k stars五、【Docker-OSX】&#xff0c;46k st…

汇智生物---农业与植物基因组分析专家

1.博导团队免费指导设计 2.博导团队免费解读实验结果 3.实验整体!打包服务 4.实验整体!打包服务 表观组 互作组 DNA亲和纯化测序 DNA亲和纯化测序技术通过体外表达转录因子鉴定转录因子结合位点&#xff0c;不受抗体和物种限制&#xff0c;且具有高通量的优势。DAP-Seq将蛋…