Java研发笔记4——C语言程序设计学习笔记3

      我们继续第二模块初识C语言的学习,上一篇笔记当中我们详细讲解了什么是C语言 以及第一个C语言程序。本篇笔记中我们继续从数据类型开始学习,后面的内容还包括:数据类型 、变量与常量 、字符串+转义字符+注释 、选择语句 、循环语句 、函数 、数组 、操作符 、常见关键字 、define 定义常量和宏 、指针 、结构体。

第二模块  初识C语言

三、数据类型
/*
为什么要写代码?
答——写代码是为了解决生活中的问题
购物:网上商城——模拟现实生活中的购物(商品陈列、商品的价格、购物、结算)
当我们要描述清楚这些数据,需要非常明确的数据类型,不同的类型去描述不同的数据
*//*
那么C语言中的数据类型:
char —— 字符数据类型
short —— 短整型
int —— 整型
long —— 长整型
long long —— 更长的整型
float —— 单精度浮点数
double —— 双精度浮点数
*///使用一段代码去验证每种类型的大小
#include<stdio.h>
int main()
{printf("%d\n", 100); // %d 代表打印10进制的整数// sizeof 函数用来计算内存空间的大小// \n 是一个转义字符,用来实现换行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;
}
//以上打印的结果(1 2 4 4 8 4 8)的单位是字节,数据是存放到内存中的
//C语言规定sizeof(long) >= sizeof(int),不同编译器对sizeof(long)运行结果可能会出现不同/*
计算机单位
比特 bit —— 计算机能识别的最小二进制指令
字节 1 byte = 8bit
1 KB = 1024 byte
1 MB = 1024 KB
1 GB = 1024 MB   TB 、PB ……
*//*
我们在VS 2022中运行上面的代码会出现C4477的警告
“printf”: 格式字符串“%d”需要类型“int”的参数,但可变参数 1 拥有了类型“size_t”
因为VS 2022这款编译器的原因,我们最好将 %d 改为 %zd 
这样运行起来,警告就会取消了
*/#include<stdio.h>
int main()
{printf("%zd\n", sizeof(char));printf("%zd\n", sizeof(short));printf("%zd\n", sizeof(int));printf("%zd\n", sizeof(long));printf("%zd\n", sizeof(long long));printf("%zd\n", sizeof(float));printf("%zd\n", sizeof(double));return 0;
}//总体而言,存在这么多的类型,其实是为了更加丰富的表达生活中的各种值。
//这些值我们在编程语言中使用变量来表现。/*
创建变量的具体方法:
数据类型 变量名称 = 初始化的值;
具体的使用方法及示例我们会在下一个目题中详细的介绍
*/
四、 变量与常量
(一)、变量的创建与命名
/*
生活中的有些值是不变的,比如说圆周率、性别、身份证号等
也有些值是可变的,比如说年龄、体重、薪资等
C语言规定,不变的值称为常量,变的值称为变量。
*//*
· 定义变量函数的方法:
变量类型 变量名称 = 初始化的值;
我们对变量命名的时候,最好也要使用一些有意义的名称
我们创建变量的时候,一定要初始化,否则有一些编译器会报错。
· 当我们使用printf打印变量的时候:
&d 用来打印int类型
%f 用来打印float类型
&lf 用来打印double类型
*//*
关于变量的命名:
1、只能由字母(包括大写和小写)、数字和下划线( _ )组成。
2、不能以数字开头。
3、长度不能超过63个字符。
4、变量名中区分大小写的。
5、变量名不能使用关键字。
*/#include<stdio.h>int main()
{//存放一个人的年龄10岁int age = 10;printf("%d\n", age);//存放一个人的薪资是5000float salary = 5000.0f;printf("%f\n", salary);//如果想限制小数点后位数,可以如下表示/*语法规定 %.xf 或者 %.xlf 中的 x 可以规定小数点后保留几位小数如果不做设置,则默认小数点后保留六位小数*/printf("%.2f\n", salary);//也可以使用double去定义浮点数,数据结尾就无需f了double money = 5000.0;printf("%.2lf\n", money);char ch = 'w'; //定义一个字符类型int a = 0; //定义一个整型并进行初始化a = 10; //修改这个整型的值printf("%d\n", a);// =打印的值为10,实现了变量值的修改return 0;
}
(二)、变量的分类及基础使用
#define  _CRT_SECURE_NO_WARNING//变量分为局部变量和全局变量#include<stdio.h>
int num1 = 1000; // 全局变量
int num = 10; //全局变量
int main()
{int num2 = 1; // 局部变量int num = 0; // 和全局变量名字一样的局部变量printf("num1 = %d\n", num1);//打印一个全局变量printf("num2 = %d\n", num2);//打印一个局部变量//当全局变量和局部变量名称相同的时候,打印局部变量优先printf("num = %d\n", num);return 0;
}//变量的使用——实现实现两个整数的相加#include<stdio.h>int main()
{int num1 = 0; //定义第一个变量int num2 = 0; //定义第二个变量//用户输入数据printf("请输入两个数字,请用回车键分割:\n");scanf("%d %d", &num1, &num2);//进行计算int sum = 0;sum = num1 + num2;//打印计算结果printf("%d + %d = %d", num1, num2, sum);return 0;
}/*
上面这段代码如果在VS2022上第一次编译,是会出现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.	
这是因为VS编译器认为scanf这个函数是不安全的,建议使用scanf_s来替换
但是scanf_s仅仅是在VS中使用的,也就是不可以跨平台使用,因此我们依旧建议使用scanf函数
具体操作方法为在整个项目的第一行加上
#define  _CRT_SECURE_NO_WARNING
VS中不仅只是scanf函数出现这个报错,所以我们在所有源文件的第一行都加入这个预处理便可以有效的在以后得编程中避免 C4996 的报错的
具体操作方法如下:
1、使用everything工具搜素 newc++file.cpp ,右击鼠标——打开路径
2、将该文件复制到桌面上,然后便可以正常修改,在其内容的第一行写入 #define  _CRT_SECURE_NO_WARNING
3、再将修改好的文件拷贝会原路径下即可
这样以后创建的文件中都会默认有这句预处理了
*/

        变量与常量的内容并么有结束,考虑到篇幅原因,我们本篇笔记暂时结束到这里,后面的内容我们会在下一篇笔记中再详细讲出。 

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

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

相关文章

Spark SQL分析层优化

导读&#xff1a;本期是《深入浅出Apache Spark》系列分享的第四期分享&#xff0c;第一期分享了Spark core的概念、原理和架构&#xff0c;第二期分享了Spark SQL的概念和原理&#xff0c;第三期则为Spark SQL解析层的原理和优化案例。本次分享内容主要是Spark SQL分析层的原理…

亚马逊 Bedrock 平台也能使用Llama 3.2 模型了

亚马逊 Bedrock 平台推出 Llama 3.2 模型&#xff1a;多模态视觉和轻量级模型 概述 由 Meta 提供的最新 Llama 3.2 模型现已在 Amazon Bedrock 平台上推出。这一新模型系列标志着 Meta 在大型语言模型&#xff08;LLM&#xff09;领域的最新进展&#xff0c;它在多种应用场景…

Java Web 之 Session 详解

在 JavaWeb 开发中&#xff0c;Session 就像网站的专属记忆管家&#xff0c;为每个用户保管着重要的信息和状态&#xff0c;确保用户在网站的旅程顺畅无阻。 场景一&#xff1a; 想象你去一家大型超市购物&#xff0c;推着购物车挑选商品。这个购物车就如同 Session&#xff…

本地访问autodl的jupyter notebook

建立环境并安装jupyter conda create --name medkg python3.10 source activate medkg pip install jupyter 安装完成后&#xff0c;输入jupyter notebook --generate-config 输入ipython,进入python In [2]: from jupyter_server.auth import passwd In [3]: passwd(algori…

Spring Data(学习笔记)

JPQL语句&#xff1f;&#xff1f;&#xff1f;&#xff08;Query括号中的就是JPQL语句&#xff09; 怎么又会涉及到连表查询呢&#xff1f; 用注解来实现表间关系。 分页是什么&#xff1f;为什么什么都有分页呢 &#xff1f; 继承&#xff0c;与重写方法的问题 Deque是什么 ?…

在Ubuntu 14.04上安装带SSL的Webmin的方法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 简介 Webmin 是一个基于 Web 的类 Unix 系统管理工具。它提供了一个简单的替代方案来进行命令行系统管理&#xff0c;并可以通过提供的…

【JavaSE】反射、枚举、lambda表达式

目录 反射反射相关类获取类中属性相关方法常用获得类相关的方法示例常用获得类中属性相关的方法示例获得类中注解相关的方法 反射优缺点 枚举常用方法优缺点 枚举与反射lambda表达式语法函数式接口简化规则使用示例变量捕获集合中的应用优缺点 反射 Java的反射&#xff08;refl…

通信协议感悟

本文结合个人所学&#xff0c;简要讲述SPI&#xff0c;I2C&#xff0c;UART通信的特点&#xff0c;限制。 1.同步通信 UART&#xff0c;SPI&#xff0c;I2C三种串行通讯方式&#xff0c;SPI功能引脚为CS&#xff0c;CLK&#xff0c;MOSI&#xff0c;MISO&#xff1b;I2C功能引…

若依从redis中获取用户列表

因为若依放入用户的时候&#xff0c;会在减值中添加随机串&#xff0c;所以用户的key会在redis中变成&#xff1a; login_tokens:6af07052-b76d-44dd-a296-1335af03b2a6 这样的样子。 如果用 Set<Object> items redisService.redisTemplate.keys("login_tokens&…

dcatadmin 自定义登录页面

一、问题&#xff1a; 在后台管理系统中&#xff0c;不同的项目想要不同的登录页面&#xff0c;但是框架自带的登录页面就只有一个。 解决&#xff1a; 由芒果系统改造的dcatadmin登录插件&#xff0c;实现一键安装改变登录页面。 项目介绍 基于Laravel和Vue的快速开发的后台管…

YOLO11改进 | 检测头 | 小目标遮挡物性能提升的检测头Detect_MultiSEAM【完整代码】

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 基于深度学习的人脸检测算法取得了巨大进…

方法与方法重载

方法参数传递 方法语法&#xff1a; 访问修饰符 返回值类型 方法名&#xff08;形参列表&#xff09;{方法体[return 返回值] } 对象名.方法名&#xff08;实参列表&#xff09;注意&#xff1a;形参和实参一一对应&#xff08;个数和类型&#xff09; package com.hz.test12…

javax.net.ssl.SSLHandshakeException: Chain validation failed

异常描述&#xff1a; D/OkHttp: <-- HTTP FAILED: javax.net.ssl.SSLHandshakeException: Chain validation failed com.bfmd.okhttpsample I/Main: error: Chain validation failed异常解决&#xff1a; 解决方法一&#xff1a; 解决方法很简单&#xff0c;检查一下设备…

PID控制原理:看下这三个故事,你就明白了

一、PID的故事 小明接到这样一个任务&#xff1a;有一个水缸点漏水(而且漏水的速度还不一定固定不变)&#xff0c;要求水面高度维持在某个位置&#xff0c;一旦发现水面高度低于要求位置&#xff0c;就要往水缸里加水。 小明接到任务后就一直守在水缸旁边&#xff0c;时间长就觉…

SEO友好的wordpress模板 应该具体哪些特征

在数字营销的时代&#xff0c;搜索引擎优化(SEO)对于任何网站来说都是至关重要的。WordPress作为全球最受欢迎的内容管理系统之一&#xff0c;提供了大量的模板(也称为主题)供用户选择。一个SEO友好的WordPress模板不仅可以帮助您的网站在搜索引擎中获得更好的排名&#xff0c;…

遇到慢SQL、SQL报错,应如何快速定位问题 | OceanBase优化实践

在数据库的使用中&#xff0c;大家时常会遇到慢SQL&#xff0c;或执行出错的SQL。对于某些SQL问题&#xff0c;其错误原因显而易见&#xff0c;但也有不少情况难以直观判断。面对这类问题&#xff0c;我们应当如何应对&#xff1f;如何准确识别SQL错误的根源&#xff1f;是否需…

嵌入向量生成与查询

嵌入向量生成与查询 文本嵌入模型 M3E 是 Moka Massive Mixed Embedding 的缩写 Moka&#xff0c;此模型由 MokaAI 训练&#xff0c;开源和评测&#xff0c;训练脚本使用 uniem&#xff0c;评测 BenchMark 使用 MTEB-zh Massive&#xff0c;此模型通过千万级 (2200w) 的中文句…

用于高频交易预测的最优输出LSTM

用于高频交易预测的最优输出LSTM J.P.Morgan的python教程 Content 本文提出了一种改进的长短期记忆&#xff08;LSTM&#xff09;单元&#xff0c;称为最优输出LSTM&#xff08;OPTM-LSTM&#xff09;&#xff0c;用于实时选择最佳门或状态作为最终输出。这种单元采用浅层拓…

MongoDB mongoose 的 save、insert 和 create 方法的比较

目录 save 方法 insert 方法 create 方法 使用会话和事务 总结 在本文中&#xff0c;我们将介绍 MongoDB 中使用 mongoose 操作 数据库时的三种常见方法&#xff1a;save、insert 和 create。这些方法可以用于将数据存储到 MongoDB 数据库中&#xff0c;并且在一定程度上具…

Study-Oracle-10-ORALCE19C-RAC集群搭建(一)

一、硬件信息及配套软件 1、硬件设置 RAC集群虚拟机:CPU:2C、内存:10G、操作系统:50G Openfile数据存储:200G (10G*2) 2、网络设置 主机名公有地址私有地址VIP共享存储(SAN)rac1192.168.49.13110.10.10.20192.168.49.141192.168.49.130rac2192.168.49.13210.10.10.3…