完全自学C(干货) —— 常量、变量

机械转行java自学经历,零基础学java,血泪总结的干货 机械转行java自学经历,零基础学java,血泪总结的干货 据说,再恩爱的夫妻,一生中都有100次想离婚的念头和50次想掐死对方的冲动。 求职路上亦是如此,打开这篇文章,相信你也有转行的想法。和身边的朋友聊过,入职后的他们,或多或少对现在的职位都有些不满,都有过转行的冲动。 可他们只是想,而我真的这样做了。 下面就介绍下我转行的血泪史。 我为什么要转行 高中复读了一年,考了个双非院校的机械。当时... 阅读详情

目录

一,常量

常量分类

二,变量

变量的初始化和赋值

变量的分类(根据作用域)

变量作用域

变量生命周期

变量的使用

变量的命名(标识符)规则


一,常量

常量:不能改变的量,在程序的运行过程中,不能变化的量;

变量:能被改变的量,在程序的运行过程中,可能会改变或者被赋值的量;

常量分类

  • 字面常量,如3; 3.14; 'A';
  • #define定义的标识符常量;
  • 枚举常量;

注:const修饰的变量称为常变量,本质上是变量;

#define MAX 10 //定义标识符常量
enum sex
{
	male,female,secret //枚举常量
};

int main() 
{
	3; 3.14; 'A'; //字面常量
	const int num = 4; //const修饰的常变量
	enum sex s = male;
	return 0; 
}

二,变量

C语言中变量遵循“先定义后使用”的原则;

声明变量的公式:类型 + 标识符 + 封号;

注:可连续声明变量;

int main() 
{
	char c;
	short s;
	int n;
	long l;
	float f;
	double d;
	return 0; 
}
int main() 
{
	//连续声明
	int a, b, c, d;
	return 0; 
}

变量的初始化和赋值

  • 在声明时赋值,称为初始化,只可初始化一次;
  • 在声明后赋值,称为赋值,可多次赋值,相当于修改变量值;
int main() 
{
	//声明变量并初始化
	int a = 0;
	//声明变量后,在赋值
	int b;
	b = 1;
	return 0; 
}

变量的分类(根据作用域)

  • 局部变量
  • 全局变量

注:全局变量和局部变量名可相同,且局部变量优先(建议不要相同);

int num = 100; //全局变量(定义在{}之外的变量)
int main() 
{
	int num = 10; //局部变量(定义在{}之内的变量)
	return 0; 
}

变量作用域

  • 作用域scope,程序设计概念,通常来说,一段代码中所用到的名字并不总是有效/可用的,而限定此名字的可用范围就是名字的作用域;
  • 局部变量的作用域,即变量所在的局部范围;
  • 全局变量的作用域,是整个工程;

变量生命周期

  • 生命周期,变量的创建到变量的消亡之间的时间段;
  • 局部变量的生命周期,进入作用域生命周期的开始,出作用域生命周期结束;
  • 全局变量的生命周期,整个程序的生命周期;

变量的使用

如计算两个输入数的和;

int main() 
{
	int num1 = 10; 
	int num2 = 20;
	scanf("%d%d", &num1, &num2); //将输入的数分别赋予num1、num2
	int sum = 0; //C语言规定,变量要定义在代码块的最前面
	sum = num1 + num2;
	printf("sum = %d\n", sum);
	return 0; 
}

运行以上代码,会出现以下错误;

此错误建议使用scanf_s,但scanf是C语言提供的,scanf_s不是标准的c语言提供的,是VS编译器提供的,不具有跨平台性、可移植性;

可在代码最前面,添加#define _CRT_SECURE_NO_WARNINGS,即可消除忽略此错误‘

正确代码应为:

#define _CRT_SECURE_NO_WARNINGS //输入此代码即可避免报错

#include <stdio.h> //引用头文件stdio.h
int main() 
{
	int num1 = 10; 
	int num2 = 20;
	int sum = 0; 
	scanf("%d%d", &num1, &num2); //将输入的数分别赋予num1、num2
	sum = num1 + num2;
	printf("sum = %d\n", sum);
	return 0; 
}

注:如想避免每次都要出入此代码,可在newc++file.cpp文件内输入#define _CRT_SECURE_NO_WARNINGS;此时新建源文件或头文件时,会自动添加此代码;

路径为:C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\VC\VCProjectItems

变量的命名(标识符)规则

  • 命名应当直观可拼读,能望文知意,便于记忆和阅读,如使用英文单词;
  • 标识符由大小写字母,数字和下划线组成。标识符不能以数字开头,并且必须与现有的关键词不同。
  • 命名的长度应当符合“最小长度、最大信息”原则,如MaxValue;
  • 当标识符由多个词组成时,每个词的第一个字母应大写,其余小写;
  • 尽量避免名字中出现数字编号,如Value1,Value2 等,除非逻辑上的确需要编号;
  • 对在多个文件之间共同使用的全局变量或函数要加范围限定符(建议使用模块名(缩写)作为范围限定符);
  • 标识符名分为两部分:规范标识符前缀(后缀) + 含义标识。非全局变量可以不用使用范围限定符前缀;
  • 作用域前缀命名规则。
  • 数据类型前缀命名规则。
  • 含义标识命名规则,变量命名使用名词性词组,函数命名使用动词性词组;
  • 程序中不得出现仅靠大小写区分的相似的标识符,如int a、int A;
  • 一个函数名禁止被用于其它之处;
  • 所有宏定义、枚举常数、只读变量全用大写字母命名,用下划线分割单词;
  • 考虑到习惯性问题,局部变量中可采用通用的命名方式,仅限于n、i、j 等作为循环变量使用;
  • 定义变量的同时千万千万别忘了初始化,定义变量时编译器并不一定清空了这块内存,它的值可能是无效的数据;
  • 不同类型数据之间的运算要注意精度扩展问题,一般低精度数据将向高精度数据扩展;

(摘抄于C语言基本数据类型简介 - onedime - 博客园)

没基础的大学生如何自学c语言 ? 史上最强C语言学习大全,多亏我足够无耻,才从公司六位C语言程序员口中问出方法来。 没错。 这篇文章总结于我们公司六位使用C语言作为开发语言的程序员前辈,方方面面近三千五百字。 C语言具有高效、灵活、功能丰富、表达力强和较高的可移植性等特点,在程序设计中备受青睐。真的太多人学也有太多要学的东西了,以至于后台总有人问C语言该怎么学,甚至还有具体问编程问题的。 乘此机会,整理C语言程序员的从入门到精通之路,分享一下这么多年来我们公司C语言程序员的学习心得。 为了这篇文章,我是费尽口舌,软磨硬泡收集到信息之后,又花 阅读详情

相关推荐

主板USB接口全部失效解决方案(通用串行总线USB控制器有黄色叹号)保姆级教程亲测有效

通用串行总线控制器总是有叹号解决办法 办公室的崩腾时代老电脑,疫情期间没人用,来了开机之后发现鼠标键盘都用不了,本以为是主机放时间长出了问题,后来想起来就百度了“鼠标键盘都失效”的标题,结果发现了“串行总线控制器总是感叹号”的关联问题。正好办公室电脑都装有teamviwer常用来远程办公(在家偷懒)。所以通过远程发现电脑室可以运行的。并在控制面板发现:通用串行总线控制器总是感叹号,插入外设时USB无反应。如图:​ 并且右键选中其中一个,点击最后一个选项:“属性” 可以发现“设备状态”中会提示“由...

xiao_bai_0_0的博客 2万+

编程实战:如何管理代码里的常量

摘要:相信不少同学在见过千奇百怪的常量类之后都有这样的疑问——怎么管理这些常量类?

华为云官方博客 1324

dreamerv3复现教程

由于dreamerv3存在很多版本冲突问题,所以很难直接使用和复现。

无人机飞啊飞啊飞 2832

【C/C++分多文件】C语言C++如何将一个复杂的程序分成多文件项目,头文件设置共享全局变量

某些场景中,我们不想把整个复杂代码写在同一个文件里,因为这使得代码冗长,可读性差难以维护。常见的解决方法是在一个.h头文件中定义一些全局变量,函数…,在多个子文件中共享这个.h文件中的全局变量这个是程序本来的样子,但是代码太长了,我想vs将它变成多文件项目,怎么改?下面标了1,2,3,4 是程序的4个部分,下面会提到每个部分放在哪儿。最终的效果如下。

学长抄作业(codeying)博客codeying.top 1189

5分钟搞定!用Cursor和.NET 9.0快速搭建串口通讯上位机(附VS Code插件配置)

本文分享了如何利用Cursor AI编程助手与.NET 9.0,在5分钟内快速构建一个功能完整的串口通讯上位机程序。通过自然语言描述需求,AI自动生成WinForms界面和核心代码,极大提升了硬件调试工具的定制开发效率。文章详细介绍了环境配置、AI协作编码、功能实现与调试的全过程。

weixin_28366353的博客 274

Zipformer实战:5分钟快速搭建语音识别模型(附LibriSpeech测试结果)

本文提供了一份详细的Zipformer语音识别模型实战指南。通过清晰的步骤,指导读者在5分钟内完成从环境配置、LibriSpeech数据集准备到模型训练与测试的全过程。文章重点解析了关键配置参数,并分享了在LibriSpeech测试集上的性能结果,帮助开发者快速评估和应用这一高效的语音识别架构。

weixin_35578748的博客 161

C语言中常量的类型及使用方法

介绍了常量的四种类型及使用方法,希望对大家能够有所帮助

qq_53085623的博客 967

从网口变压器到TVS管:手把手设计通过4KV浪涌的以太网电路

本文详细解析工业级以太网接口4KV浪涌防护设计,从网口变压器选型到TVS管布局,提供通过IEC61000-4-5标准测试的完整方案。重点介绍Bob Smith电路优化和PCB设计技巧,帮助工程师有效应对雷电感应和设备开关瞬态干扰,确保工业设备稳定运行。

study的专栏 283

C语言——全局变量在多个.c文件中共用

的形式,是告诉编译器我这个变量将在其他外部c文件中定义,我这里只是在外部用它。编译器就不给他分配内存空间,而等到真正遇到变量定义的时候再给他分配内存空间。全局变量可以定义在一个.c文件中,变量存储在静态存储区,变量可以被其他文件中的函数使用,变量的作用范围是。当定义了全局变量的时候,在其他.c文件中使用的时候需要。”的形式,编译器需要给他分配内存单元的;是来自来自外部的外部变量;变量定义和变量声明的区别,

曾记否@ 5101

思远耳机充电芯片-SY5501

BES2700ZP-本文档介绍了思远耳机充电芯片SY5501的使用方法,包括芯片引脚功能说明(VCC、IRQ、RST等)、通信机制(VIN引脚的双重作用)以及相关注意事项。提供了代码片段、调试日志和电路图作为参考,并列出了待解决的问题清单。该芯片需要配合特定充电仓使用,支持私有协议和用户自定义通信功能。

云淡风轻 123

DiffusionDriveV2 (1) : 端到端自动驾驶中受强化学习约束的截断扩散建模

DiffusionDriveV2:强化学习约束的截断扩散模型在端到端自动驾驶中的应用 本文针对端到端自动驾驶中扩散模型面临的模式崩溃问题,提出DiffusionDriveV2框架。该方法通过引入强化学习约束,解决了DiffusionDrive依赖模仿学习导致的多样性与持续高质量之间的困境。主要创新包括: 采用尺度自适应乘法噪声促进广泛探索 提出锚点内GRPO管理单个锚点样本间的优势估计 设计锚点间截断GRPO整合全局视角,避免不同驾驶意图间的不当比较 实验表明,该方法在NAVSIM基准测试中达到最先进水平(

@bangbang的博客 381

编写一个C程序,重温全局常量、全局变量、局部变量、静态变量、堆、栈等概念,在Ubuntu(x86)系统和STM32(Keil)中分别进行编程、验证

对C程序的内存分配有进一步的认识,知道一个C程序内存应该包括哪些部分,然后了解了更多关于stm32的串口问题【嵌入式18】Ubuntu、stm32下的程序内存分配问题(堆栈、局部全局变量等)_ubuntu软件使用内存位置_噗噗的罐子的博客-优快云博客STM32之变量存储位置解析(根据地址分析)_stm32局部变量存放在哪里-优快云博客基于ubuntu,树莓派和stm32的C程序的内存分配问题_树莓派提高程序运行的内存分配-优快云博客。

qq_69626808的博客 532

TensorRT的安装:一步一步教会你如何安装TensorRT

TensorRT(Tensor Runtime)是由NVIDIA开发的一个用于深度学习推理(inference)优化的库,它可以在NVIDIA的GPU上加速神经网络模型的推理过程,从而提高模型的性能和效率。安装完成后,需要将CUDA的安装路径添加到系统环境变量中,以便系统能够找到CUDA的库文件。根据你安装的CUDA版本,将CUDNN的库文件复制到CUDA的安装目录中。要使用TensorRT,首先需要安装NVIDIA的CUDA和cuDNN库,并根据NVIDIA官方文档安装TensorRT。

Science prince的博客 2372

完全自学C(干货) —— C简介

C介绍

NapoleonCoder的博客 2343

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

手把手教你如何自学计算机,绝对的干货满满!!!

a. 自我介绍; 在下姓赵,编程萌新,现大一,非计算机专业新生,第一次接触并学习C语言是大一上学期,学习一段时间后尝试写 b. 编程目标; c. 如何学习编程; d. 在学习编程上每周花费多少时间; e. 我最想进入的一家IT公司; ...

qq_56847032的博客 3万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

0基础C保姆自学 第二节——初步认识C语言的全部知识框架

在看本章节前,请确保已经掌握了第一节的内容呦。不懂的欢迎在评论区留言~~~~ 本节定位:初步了解认识一下C中的知识,所有的知识都是点到为止。目的是在接下来章节的介绍中笔者的举例读者可以更好的接受。比如在函数的介绍中我们会用到指针。 所有的知识点我们会在接下来的章节一一详细介绍,读者在阅读本章的时候,只需要知道有这么个东西,并且能够理解笔者所说的含义即可。 本节我们将沿着上一节介绍: 本节内容有: 数据类型; 常量和变量; 字符串; 转义字符; 代码注释; 数组; 函数; 选择语句;

jxwd的博客 1万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

30个珍藏的程序员超实用自学网站,干货!

有朋友问我平时都是在哪里自学的呢?大学四年以来我收藏了各种学习网站今天一次性分享给大家,一起学习! 一、视频类自学网站 1.哔哩哔哩 自学观看各种教程视频,比较推荐B站,各个领域极其全面。 网址:https://www.bilibili.com/ 2.慕课网 这个网站也是比较常用的,有各种实用的教程,如果你想快速入门一种语言的话,可以到这看看。 网址:https://www.imooc.com...

zag666的博客 3万+

完全自学C(干货) —— 函数

即子程序,是大型程序中某部分代码,由一个或多个语句块组成,通常被集成为软件库;

NapoleonCoder的博客 380

完全自学C(干货) —— 数组

一组相同类型元素的集合,可存储一系列相同类型的数据;

NapoleonCoder的博客 1153

完全自学C(干货) —— 编译与链接

编译与链接,预处理指令;

NapoleonCoder的博客 1203

完全自学C(干货) —— 预处理详解

预处理;

NapoleonCoder的博客 941

完全自学C(干货) —— 自定义类型

结构体是一些值的集合,称为成员变量;内存对齐;段位;

NapoleonCoder的博客 389

完全自学C(干货) —— 结构体初识

是一些值的集合,这些值被称为成员变量;

NapoleonCoder的博客 344

零基础学c语言职坐标,C语言自学入门|最全基础知识总结!

C语言作为一门非常适合编程入门的语言,打好基础的重要性不言而喻。所以特此奉上这一篇很干很干的干货,希望小伙伴们能从中受益。一、C语言程序的结构认识用一个简单的c程序例子,介绍c语言的基本构成、格式、以及良好的书写风格,使小伙伴对c语言有个初步认识。例1:计算两个整数之和的c程序:#includemain(){inta,b,sum;a=20;/*定义变量a,b,sum为整型变量*/b=15;...

weixin_36450447的博客 1444

C语言二进制标识符,C语言入门基础大全,自学C语言必备知识!

C语言作为一门非常适合编程入门的语言,打好基础的重要性不言而喻。所以特此奉上这一篇干货,希望小伙伴们能从中受益。一、C语言程序的结构认识用一个简单的c程序例子,介绍c语言的基本构成、格式、以及良好的书写风格,使小伙伴对c语言有个初步认识。例:计算两个整数之和的c程序:#include main()int a,b,sum;a=20;/*定义变量a,b,sum为整型变量*/b=15;/*把整数20赋值...

weixin_29469195的博客 2600

完全自学C(干货) —— 关键字

关键字;

NapoleonCoder的博客 311
上一篇: 完全自学C(干货) —— 数据类型初识
下一篇: 完全自学C(干货) —— 字符串,转义字符,注释
挨代码
博客等级 码龄5年 1696粉丝 384原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值