完全自学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语言程序员的学习心得。 为了这篇文章,我是费尽口舌,软磨硬泡收集到信息之后,又花 阅读详情

相关推荐

搭建PX4开发系统(Ubuntu 22.04)

本文是《从零开始学 PX4 无人机开发》系列第二篇,适合开发者在 Ubuntu 系统下快速搭建 PX4 编译与仿真环境,支持 QGroundControl、Gazebo、MAVSDK 等完整工具链。

qq_15856721的博客 4198

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

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

华为云官方博客 1324

基于PLC的全自动洗衣机控制系统+控制程序

本设计使用PLC控制系统替换了传统的继电器控制系统,实现了全自动洗衣机在硬件方面的提升,丰富了全自动洗衣机在软件方面的功能,提高了全自动洗衣机的洗衣效率,基本可以满足用户的洗衣需求。

zzzz114231的博客 8953

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

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

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

麒麟V10系统下CoreDump文件自动归档与快速定位指南(附coredumpctl实战)

本文详细介绍了在麒麟V10操作系统下,如何利用systemd-coredump机制和coredumpctl工具实现CoreDump文件的自动化管理与高效调试。内容涵盖从系统架构解析、自动化配置策略,到使用coredumpctl进行快速查询、过滤与深度分析的实战指南,旨在帮助运维人员和开发者快速定位系统崩溃的根本原因,提升问题排查效率。

gg901的博客 220

【用unity实现100个游戏之15】开发一个类保卫萝卜的Unity2D塔防游戏5(附项目源码,完结)

本期是本项目的最后一篇,主要内容是配置环境、生成不同敌人、结束重开。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2569

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

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

qq_53085623的博客 967

零件边界线提取处理原理详解

该程序提出了一种高效的点云边界提取方法,通过三阶段处理流程实现零件几何特征的精确提取。首先采用RANSAC算法进行坐标系标准化,包括主平面检测、点云分割和双重旋转对齐。接着使用凹包算法和RANSAC直线拟合提取底面边界。最后通过多方向密度切片分析(Z向100片、X向50片),自动选择高密度切片进行边界提取和直线拟合。算法具有鲁棒性强、处理效率高(支持OpenMP并行计算)和参数可配置等特点,能有效提取零件的几何边界特征,为后续质量检测提供基础。实验结果显示该方法能准确提取零件的多方向边界线。

weixin_45196569的博客 432

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

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

曾记否@ 5101

利用SIMULINK搭建一个16QAM调制解调收发系统

1发送模块设计 根据前面介绍的理论知识,我们可以知道16QAM的基本结构,首先我来设计QAM发送段的SIMULINK仿真模块。 图1 16QAM的发送端模块 他的基本工作流程为:将信号通过两路升余弦滤波器,得到滤波以后的信号,滤波器的作用就是为了防止码间干扰。然后将滤波以后的信号和SIN,COS相乘得到调制信号,将调制 下面一一介绍每个模块的具体参数设置以及各个部分信号的波形图。 图2 产生随机数据的信号源 第一部分信号是产生一组随机的数字,作为信源,第二个模块将信号...

FPGA/MATLAB学习教程/源码/项目合作开发 4776

GEE:提取研究区 NDVI/LST/RVI 并进行时间序列线性插值填补缺失像素和Savitsky-Golay(SG)滤波平滑处理

养乐多_本文将介绍使用Landsat数据集,构建时间序列,并使用线性插值算法填补缺失数据,或者去云空洞,并进一步对完整的时间序列数据进行SG滤波处理。

养乐多的博客 3195

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

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

qq_69626808的博客 532

轨迹优化 | 基于ESDF的共轭梯度优化算法(附ROS C++/Python仿真)

共轭梯度法的核心原理是求解优化问题的共轭向量组作为优化方向,由于优化方向间彼此正交,故每次迭代只需沿着一个方向寻优而互不影响。本文设计基于ESDF的障碍约束、曲率约束和平滑约束,基于ROS C++和Python提供了共轭梯度法的轨迹优化实践案例

FRIGIDWINTER的博客 1万+

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

C介绍

NapoleonCoder的博客 2343

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

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

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

qq_56847032的博客 3万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

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

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

jxwd的博客 1万+

计算机控制技术及应用

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

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、付费专栏及课程。

余额充值