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

devtools/2024/10/9 3:23:10/

      我们继续第二模块初识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.ppmy.cn/devtools/120427.html

相关文章

【在Linux世界中追寻伟大的One Piece】System V共享内存

目录 1 -> System V共享内存 1.1 -> 共享内存数据结构 1.2 -> 共享内存函数 1.2.1 -> shmget函数 1.2.2 -> shmot函数 1.2.3 -> shmdt函数 1.2.4 -> shmctl函数 1.3 -> 实例代码 2 -> System V消息队列 3 -> System V信号量 1 -> Sy…

【MySQL基础刷题】总结题型(一)

一篇十题复习的负担小一点 不重要的知识点1.第二高的薪水2.分数排名3.连续出现的数字3.部门工资最高的员工4.部门工资前三高的人5.游戏玩法分析II6.游戏玩法分析III7.购买了A和B但没有购买C8.机器的进程平均运行时间9.每位学生的最高成绩10.学生们参加各科测试的次数 不重要的知…

图像处理基础知识点简记

简单记录一下图像处理的基础知识点 一、取样 1、释义 图像的取样就是图像在空间上的离散化处理,即使空间上连续变化的图像离散化, 决定了图像的空间分辨率。 2、过程 简单描述一下图象取样的基本过程,首先用一个网格把待处理的图像覆盖,然后把每一小格上模拟图像的各个…

VB.NET中如何利用LINQ to SQL进行数据库操作

在VB.NET中&#xff0c;利用LINQ to SQL进行数据库操作是一种强大的方式&#xff0c;它允许你使用VB.NET的查询语法来直接操作数据库&#xff0c;而无需编写大量的SQL代码。LINQ to SQL是一种ORM&#xff08;对象关系映射&#xff09;技术&#xff0c;它将数据库表映射为.NET中…

若无向图G(V,E)中含7个顶点,为保证图G在任何情况下都是连通的,则需要的边数最少是多少?

这乍一看是不是可抽象&#xff08;迷糊&#xff09;了&#xff0c;butttt待我小翻译一下。 先举少一点的例子&#xff0c;假如我们有三个点&#xff0c;我给你两条边&#xff0c;那是不是不管咋连都一定一定是连通的。 那我们再进一步&#xff0c;假如四个点呢&#xff1f;我给…

【STM32】 TCP/IP通信协议(1)--LwIP介绍

一、前言 TCP/IP是干啥的&#xff1f;它跟SPI、IIC、CAN有什么区别&#xff1f;它如何实现stm32的通讯&#xff1f;如何去配置&#xff1f;为了搞懂这些问题&#xff0c;查询资料可解决如下疑问&#xff1a; 1.为什么要用以太网通信? 以太网(Ethernet) 是指遵守 IEEE 802.3 …

操作符详解与表达式求值

目录 操作符分类 1.算数操作符 2.移位操作符&#xff08;只适用于整数范围&#xff09; &#xff08;1&#xff09;引入 &#xff08;2&#xff09;左移操作符<< &#xff08;2&#xff09;右移操作符>> 3.位操作符 4.赋值操作符 复合赋值符 5.单目操作符 5…

【系统架构设计师】专题:需求工程总结

更多内容请见: 备考系统架构设计师-核心总结目录 文章目录 一、软件需求二、需求获取三、需求分析3.1 需求分析的任务3.2 结构化的需求分析四、需求定义五、需求验证六、需求管理一、软件需求 软件需求是指 用户对系统在功能、行为、性能、设计约束等方面的期望。是指用户解决…