二、初识C语言(2)

 1.修正 VS 下"scanf"的警告

VS-2010中调用scanf,会出现以下警告

1>e:\c\projects\test\test\test.c(6): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>          d:\vs\vc\include\stdio.h(304) : 参见“scanf”的声明

scanf是C语言提供的,scanf_s不是标准C语言提供的,是VS编译器提供的。(不具有跨平台性/可移植性)

找到VS-2010软件的安装路径 —> 文件夹下的 VC —> vcprojectitems —> newc++file.cpp (记事本打开)—> 记事本写入 #define _CRT_SECURE_NO_WARNINGS 1

2.常量

(1)字面常量

例如:1        2        3        4        5.......,这些熟知的数字。

(2)const修饰的常变量

变量具有常属性,但实质是变量,不能当常量使用。

常属性:const修饰后的变量被赋值后,不能再被重新赋值。

实质是变量,例:创建数组大小时,数组的大小和位置已经确定了,需要一个常量去指定数组的大小,所以就不能用const修饰的变量去定义数组的大小。

常变量实质是一个变量

(3)#define定义的标识符常量

#define a 10

a是个常量,a == 10.

(4)枚举常量 enum

enum Sex        //枚举性别

{

        male,        //0        男

        female,     //1        女

        secret       //2        秘密

}

enum Sex a = male;

(enum Sex相当于变量的数据类型)

3.字符串

字符串:由双引号"  "引起来的一串字符

'' "(空字符串)

字符串的结束标志是  \0  转义字符,在计算字符串长度的时候,\0是结束标志,不算做字符串内容,不算做字符串的长度,但占内存大小。

strlen        计算字符串长度大小        <string.h>

(strlen 实质是得到一个起始位置(数组名),从这个位置出发,一直到 \0 结束走过的元素数。)

sizeof        计算变量或类型所占内存大小

字符串数组,无结束标志,显示内容为乱码,计算字符串长度为随机值。

字符可以用相对应的ASCII码表示

(1)三种字符串数组

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
//三种字符串数组
int main ()
{char arr1 [] = "abc";char arr2 [] = {'a','b','c',0};  //{'a','b','c','\0'}char arr3 [] = {'a','b','c'};printf("这三种字符串为:\n");printf("%s\n",arr1);printf("%s\n",arr2);printf("%s\n",arr3);printf("\n");printf("这三种字符串的长度为:\n");printf("%d\n",strlen(arr1));printf("%d\n",strlen(arr2));printf("%d\n",strlen(arr3));printf("\n");printf("这三种字符串所占内存大小为:\n");printf("%d\n",sizeof(arr1));printf("%d\n",sizeof(arr2));printf("%d\n",sizeof(arr3));return 0;
}

(2)程序运行时的监视功能

程序调试过程中(F10/F11),调试 -> 窗口 -> 监视

选择一个监视窗口,输入变量名,进行调试,观察变量变化情况。

(3)转义字符

转义字符:转变原本的意思

\t        水平制表符

"\"""        '\''

\ddd        表示1~3个八进制数字

\xdd        表示2个十六进制数字

两种转义字符串数组:

\32(8) -> 26(10) -> " -> "(运行结果窗口里面设置,点阵字体,才能看到"->")

                ' \0' -> 0

ASCII码:'0' ->48

                 'A' -> 65

                 'a' ->97

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
//两种转义字符串数组
int main ()
{	char arr1 [] = "c:\test\32\test.c";char arr2 [] = "c:\\test\\32\\test.c";printf("arr1数组:\n");printf("%s",arr1);printf("\n");printf("arr2数组:\n");printf("%s",arr2);printf("\n");printf("arr1数组长度:\n");printf("%d",strlen(arr1));printf("\n");printf("arr2数组长度:\n");printf("%d",strlen(arr2));printf("\n");printf("arr1数组大小:\n");printf("%d",sizeof(arr1));printf("\n");printf("arr2数组大小:\n");printf("%d",sizeof(arr2));printf("\n");return 0;
}

4.注释

单/多行:/*         */( /*之后只要遇到*/就结束,不能嵌套使用。)

单行://

5.分支(选择)语句

if分支:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
//if分支
int main ()
{	int a = 0;printf("开始学习C语言:");printf("是否坚持?1:0\n");scanf("%d",&a);if(1 == a){printf("优秀滴\n");}else{printf("滚去学习\n");}return 0;
}

6.循环语句

while循环:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
//while循环
int main ()
{	int i = 0;while(i<=9999999999999999999)//19个9{printf("敲了%d行代码\n",i);i++;}if(i>9999999999999999999){printf("牛逼\n");}return 0;
}

7.函数

Add函数:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
//函数
int Add (int x,int y)
{int z = x+y;return z;
}
int main ()
{	int a = 0;int b = 0;int sum = 0;printf("a=");scanf("%d",&a);printf("b=");scanf("%d",&b);sum = Add(a,b);printf("sum=%d\n",sum);return 0;
}

8.数组

数组:一组相同类型元素的集合

下标从0开始,用下标访问元素,可用变量循环加的方式访问数组各个元素。

     

                                         int

数组元素的数据类型        char        arr[10]                      

                                         float

                                         ....

数组元素个数 = 数组大小 / 某一个元素大小

数组元素个数可根据列举元素来实现,数组初始化,可以不指定大小。

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
//数组
int main ()
{	int i = 0;int j = 0;int arr [] = {1,2,3,4,5,6,7,8,9,10};while(i<=9){printf("%d\n",arr[i]);i++;}j = sizeof(arr)/sizeof(arr[0]);printf("该数组个数为:%d\n",j);return 0;
}

9.思维导图

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

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

相关文章

使用swagger3.0踩过的坑

1.出现这个错误&#xff1a; 原因是&#xff1a; 改成&#xff1a; 就可以了 2.参数框框里面输入不了值 点击try it out &#xff0c;就可以输入了

产品的四个生命周期,产品经理需深刻理解

在产品管理的世界里&#xff0c;产品就像有生命的个体&#xff0c;经历着从诞生到消亡的过程。作为产品经理&#xff0c;深刻理解产品的四个生命周期 —— 引入期、成长期、成熟期和衰退期&#xff0c;是打造成功产品的关键。 引入期&#xff1a;破局的起点 对于 B 端产品而言&…

基于ADC12DJ5200 采样率10.4GS/s的AD子卡设计方案

FMC AD 子卡 12bit 2 通道 5.2GS/s 或单通道 10.4GS/s&#xff0c;是一款高分辨率、高采样率 ADC FMC 子板。它提 供 2 路 12 位 5.2GS/s 或 1 路 10.4GS/s 的 A/D 通 道 &#xff0c; 全功率模拟 -3dB 输入带宽可达 8GHz。本产品是基于 TI 公司ADC12DJ5200 模数转换芯片而设计…

SAP ABAP开发学习——WDA 六 控件与上下文数据编程

目录 控制器就是一个class 钩子方法&#xff08;hook method&#xff09; 组件控制器的hookmethod 普通方法的三种类型 控制器的属性 对参照使用的控制器的引用 访问数据节点 访问节点中的元素 小结1 访问单个节点的属性 取得集合中所有节点的属性 更改单个节点属性…

一文读懂| 自注意力与交叉注意力机制在计算机视觉中作用与基本原理

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发…

手动切换python版本

本地有多个python版本&#xff0c;在没有安装anaconda工具&#xff0c;需要手动切换环境需要的操作。 目录 1、建立目录 建立pip的本地目录&#xff0c;如下图&#xff1a; 2、打开系统环境变量&#xff0c;增加变量 打开系统环境变量&#xff0c;我这里用的是“编辑帐户的…

在 ASP.NET Core 6.0 中使用 Swagger/OpenAPI 丰富 Web API 文档

示例代码&#xff1a;https://download.csdn.net/download/hefeng_aspnet/89961435 介绍 在选择或尝试与 API 集成之前&#xff0c;大多数开发人员都会查看其 API 文档。保持 API 文档更新以反映软件更改是一项挑战&#xff0c;需要时间和精力。对于 Web API&#xff0c;我们…

125. 屏幕坐标转标准设备坐标

在讲解下节课鼠标点击选中模型之前&#xff0c;先给大家讲解下坐标系的问题。 获取鼠标事件坐标 先来了解一些&#xff0c;普通的web前端相关知识。 鼠标单击HTML元素&#xff0c;通过函数的参数鼠标事件对象event&#xff0c;可以获取一些坐标信息。课件源码中是以threejs的…

【SAP-ABAP】-BTE增强

BTE增强的概念&#xff1a; 有点类似财务的替代增强 SAP有很多这种增强方式&#xff0c;就是相当于复制一个原有FM&#xff0c;替换FM里面的逻辑 事务码&#xff1a;FIBF--维护事务BTE 一、操作步骤&#xff1a;FIBF->环境->信息系统&#xff0c;查找事件号及需要替换的函…

【云原生开发】K8S集群管理后端开发设计与实现

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

爱普生SG-8201CG可编程振荡器的应用领域

在科技飞速发展的今天&#xff0c;电子设备的性能和稳定性成为各个行业关注的焦点。爱普生 SG - 8201CG 可编程振荡器以其卓越的性能&#xff0c;在众多领域中大放异彩&#xff0c;成为推动行业进步的关键力量。 1.通信领域&#xff1a;高速通信的精准守护者 在通信领域&…

计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session

文章目录 一、HTTP协议的特点1.1 特点1.2 HTTP是不保存状态的协议&#xff0c;如何保存用户状态? 二、浏览器中输入URL返回页面过程&#xff08;重&#xff09;三、HTTP状态码四、HTTP相关协议对比4.1 HTTP和HTTPS的区别&#xff08;重&#xff09;4.2 HTTP1.0和HTTP1.1的区别…

基于Spring Boot的网上商品订单转手系统设计与实现,LW+源码+讲解

摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装网上商品订单转手系统软件来发挥其高效地信息处理的作用&a…

设备的设计流程和风险评估

为了保证机器的安全性&#xff0c;在机器设计和开发过程中必须降低风险。该过程如下列流程图所示。 风险评估的含义以及如何进行

【MATLAB源码-第209期】基于matlab的MSK调制解调仿真,对比三种解调方法的误码率分别是相干解调,1比特差分,2比特差分。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 最小频移键控&#xff08;Minimum Shift Keying&#xff0c;简称MSK&#xff09;是一种特殊的连续相位频移键控&#xff08;CPFSK&#xff09;&#xff0c;它以其频谱效率高、抗干扰能力强而著称&#xff0c;广泛应用于无线通…

Git 的分支管理

一、分支介绍 1、分支是什么 Git作为一个分布式版本控制系统&#xff0c;提供了强大而灵活的分支管理功能&#xff0c;使得开发团队能够高效地协作开发、管理不同的功能和版本。 2、为什么有分支 一般情况下主分支&#xff08;master/main&#xff09;应始终保持可部署的状…

论文速读:简化目标检测的无源域适应-有效的自我训练策略和性能洞察(ECCV2024)

中文标题&#xff1a;简化目标检测的无源域适应&#xff1a;有效的自我训练策略和性能洞察 原文标题&#xff1a;Simplifying Source-Free Domain Adaptation for Object Detection: Effective Self-Training Strategies and Performance Insights 此篇文章为论文速读&#xff…

mac找到主目录下的文件夹

访达-&#xff08;上方状态栏显示&#xff09;-然后在

FFmpeg 4.3 音视频-多路H265监控录放C++开发十二:在屏幕上显示多路视频播放,可以有不同的分辨率,格式和帧率。

上图是在安防领域的要求&#xff0c;一般都是一个屏幕上有显示多个摄像头捕捉到的画面&#xff0c;这一节&#xff0c;我们是从文件中读取多个文件&#xff0c;显示在屏幕上。 一 改动UI文件 这里我们要添加两个label&#xff0c;为了区分我们设置一下背景色&#xff08;这个是…

RK3576 LINUX RKNN SDK 测试

安装Conda工具 安装 Miniforge Conda wget -c https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh chmod 777 Miniforge3-Linux-x86_64.sh bash Miniforge3-Linux-x86_64.shsource ~/miniforge3/bin/activate # Miniforge 安装的…