c语言命名规则_C语言的基本数据类型及变量

  1. 学习目标

  2. 了解C语言的基本数据类型
  3. 了解变量的基本概念
  4. 了解变量的使用方法
  5. 了解了变量的命名方法
  6. 了解格式占位符
  7. 了解变量的输出

了解C语言程序的基本数据类型及概念的使用方法擦

在C语言编程中,系统定义了多种数据类型,本节将讲解基本数据类型的分类。基本数据类型分别为整型、字符型、实型(浮点数)以及枚举。枚举数据类型本节并不讲解,在之后的课程中将会详细讲解有关枚举数据类型的概念及使用。系统定义的数据类型可以用于描述一变量。在编程中变量是指可以存储值的容器,是一个抽象的概念。如果用具体化的方式描述变量,则可以称为一个标有存储类型说明的容器,例如一个盒子在外标有月饼字样,则表示该盒子是用于装月饼类型的容器并且所存储的值可以改变(存储值的改变将会在下一章讲解)。2.1 了解基本数据类型的概念
基本数据类型指不可再分解的类型。想必各位读者觉得这句定义还是依如常规的生涩难懂。为什么说基本数据类型指的是不可再分解的类型呢?因为在C语言编程中,有些数据类型内部其实有着多种数据类型组合,多种数据类型组合成的类型称为 构造数据类型,它可以分解成几种或一种数据类型。而基本的数据不能再分解,例如整型,表示一个整数的类型,该类型是无法再进行分解的。2.2 了解整型及使用整型描述变量
整型在C语言中使用int表示,int也称为类型说明符。在之前的内容中提到,类型说明符可以用于描述一变量;如使用int 描述一变量则表示该变量所存放的值需要是整数类型。用C语言描述如下:
int a;
其中a表示这个变量的名称,或者说这一容器我们命名为a,使用int描述这个容器。变量命名是有一定规则的,并不能随意的命名规则,须遵从以下几个标准(摘抄于百科):
  1. 1.标识符必须以字母或者下划线开头,其他可以是数字、字母、下划线。
  2. 2.标识符中的字母不限大小写,但大小写意义不同。
  3. 3.标识符的有效长度是31个字符
  4. 4.不能使用关键字。关键字指C语言中已使用过的特殊标志,如int表示整型,则int不能作为变量名。
变量的命名最好是能够表示这个变量所存储的值。例如我需要一个变量存储年龄,那么我可以将这个变量命名为age(age为英文,中文意为年龄),变量的命名从名字可以表达存储值的内容是最好不过了。但在一些情况下,可以需要多个英文单词才能表达出该变量存储值,在没有指定其它命名标准的情况下,可以使用几种经典的命名方式:匈牙利命名法、骆峰命名法、下划线命名法以及帕斯卡命名法。匈牙利命名法:匈牙利命名法为属性加描述名。例如你需要创建一个年龄是整型的变量则可以写成isex,意思为int类型的变量sex。C语言示例为:
int iage;
驼峰命名法:驼峰命名法为多个英文单词的组合,首个英文单词首字母小写,之后的单词首字母首字母大写;当我需要创建一个变量为我的年龄时可以写为myAge,my表示我的,Age则是年龄。C语言示例为:
int myAge;
帕斯卡命名法:帕斯卡命名法和驼峰命名法类似,则是所有的英文单词首字母都需要大写,如MyAge。C语言示例为:
int MyAge;
下划线命名法:下划线命名法则是在多个英文单词组合时使用下划线间隔,例如my_age。C语言示例为:
int my_ag;
以上的所有变量创建都需要遵循变量初始化。变量初始化指在创建变量时需要赋予变量一个值,防止在接下来的程序编写中发生不可控的bug。变量初始化可以将未知的变量值变成已知,减少程序错误。如:
int my_ag=0;
使用等于号(=)可以将等于号右边的值存储在等于号左边的变量中;在此注意,在非特殊情况下,将要存储的值一定要与变量的类型相符。
一个完整的C语言变量初始化代码如下:
void main(){    int myAge;}
2.3 了解字符型及使用字符型描述变量
了解了整型变量的创建及初始化后,接着了解字符型及字符型变量的初始化。
字符型使用char表示。同样,使用char可以用于描述变量。C语言代码描述如下:
char my_name='T';
以上描述形式跟整型描述形式相同,在变量名前加上描述符即可完成对变量的描述,并且也表示新建了一个该类型的变量。以上新建了一个变量my_name,并且给予了一个值’T’。可能会有同学问,这个字符的值就是’T’了吗?为什么要加单引号?
这是因为在C语言中,字符值在赋值或者传递的时候需要使用单引号表示,这是一种语法规定。其实理解起来也很简单,例如我创建一个变量为T,我单独的给予一个T给变量my_name,这时给的是变量T还是字符T呢?所以在C语言中,使用单引号引起来的字符表示为本身。在这还需要注意的是理解字符的概念,字符是单个符号、字母或数字,并不是一连串的符号。例如“ABCDefg,.;d[]213”这一串称为字符串,字符指的是单个符号。当我向字符类型变量传递一个值“ABCDefg,.;d[]213”则会错误。可能在C语言新的标准中会出现警告。在警告下的程序是可以运行的,但会出现不可控的状态。在字符赋值时,字符值需要添加单引号。2.4 了解浮点型及使用浮点型描述变量
浮点型我们可以理解为小数或实数,分为单精度与双精度。单精度使用float表示,双精度使用double表示。单精度与双精度的区别为位数不同、精确度不同。由于本系列教程为基础的快速入门教程,在此只讲解单精度float,并不过多的讲解其它内容。我们只需要明白小数之类的存储,需要使用float描述变量即可。例如:
float fval=1.1;
以上使用float描述变量fval,fval使用了匈牙利命名法,f表示float,val则是value的缩写,意味float的值。存储的值为1.1。

变量值的输出

在前几章中,我们了解了使用printf使程序在运行时显示指定的内容,那么如何直接输出变量的值呢?现在假设有一变量名为myAge,所存储的值为25,使用printf输出myAge的值到屏幕上则可以写为:
#includevoid main(){    int myAge=25;    printf("%d",myAge);}
在代码中,使用int描述myAge这个变量,表示该变量存储的值为一个整数;在myAge变量右侧为一个等于号,表示将等于号右侧的内容存储值等于号左侧的变量myAge。之后使用printf输出。之前的学习中提到printf将会把括号中双引号内的内容给照原样输出值屏幕上显示,应该显示为%d,在此先查看运行结果。程序运行结果为:

dc7d2c79b9d09ba566289029e07180ec.png

程序运行结果并没有输出%d,这是因为%d是特殊的标志,称为格式占位符号。%d表示将要在这个位置输出一个整数类型的值,这个值将会是双引号后的第一个值;双引号要与值进行分隔,需要使用逗号,就像printf("%d",myAge);的书写方式一样。%d会显示myAgew的值。假设我有多个变量一个为myAge另外一个为myName,那么输出两个值的方式则可以写成:
#includevoid main(){    int myAge=25;    char myName='T';    printf("%c:%d",myName,myAge);}
以上代码创建了两个变量,一个名为myAge一个名为myName,它们分别存储了25与T字符。输出时代码为:printf("%c:%d",myName,myAge);。在printf中,我们发现多了一个不认识的标志%c,%c与%d一样也是格式占位符;%c表示这个位置将会有一个字符的值代替,%d则表示将会有一个整数值代替;它们之间具体输出的值将由双引号后,由逗号隔开的变量顺序决定。第一个值%c则会在输出显示时更换成myName所存储的值,%d则会跟换成myAge所存储的值。在%c与%d之间的冒号则会原样输出,因为冒号并不是格式占位符。输出结果如下:

cb60015939427173e9a407310bef2468.png

以上示例可能会导致某些同学觉得%c表示字符,就会自动的去后面寻找字符的第一个替换。其实并不会这样,所有值的替换是由顺序决定的。第一个占位符将会输出后方第一个变量值,以此类推。以下再看一个示例代码了解输出顺序:
#includevoid main(){    int myAge=25;    char myName='T';    char myName1='b';    printf("%c:%d:%c",myName,myAge,myName1);}
以上示例增加了一个变量myName1,所存储的值为字符b。在printf中所有占位符都以变量类型对应的数序书写;第一个myName为%c、第二个myAge为%d、第三个myName1为%c。结果如下:

c07d1de618ae097af26d6843e8b8b686.png

浮点数的格式占位符为%f,示例如下:
#includevoid main(){    float myAge=25.5;    printf("我今年的年龄为:%f",myAge);}
结果如下:

3fb00d21ac976ad0b56d24238eaf41a2.png

总结

通过以上描述与讲解,我们了解了以下几点内容:
  1. 了解了C语言的基本数据类型有整型、字符型、浮点型
  2. 了解了变量是存储值的容器
  3. 了解了变量如何的创建需要使用类型符号进行描述并且需要初始化值
  4. 了解了变量的驼峰命名法、匈牙利命名法、下划线命名法、帕斯卡命名法
  5. 了解格式占位符%d以及%c的作用及使用方法
  6. 了解了变量使用printf与格式占位符进行输出显示
IT原创动漫、学习资料、原创教程请关注公众号ec7982c42e700e50ab90b439b4b02c58.png

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

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

相关文章

Linux 常用的软件包管理器/软件包管理工具详解

文章目录RPM 是什么?应用于哪些系统RPM 的前端工具有哪些RPM 包命名规范RPM 安装软件的默认路径RPM 安装原理图RPM 命令详解YUM 是什么?应用于哪些系统YUM 原理说明主要特点YUM 和 RPM 的区别YUM 命令详解DNF 是什么应用于哪些系统DNF 命令详解APT 是什么…

java world_Java World中的GraphQL简介

java world许多人认为GraphQL仅适用于前端和JavaScript,它在Java等后端技术中不占优势,但事实确实如此。 还经常将GraphQL与REST进行比较,但是这种比较是否合理? 首先,让我开始回答其中最重要的问题。 什么是GraphQL…

快速排序 动图_Java十大排序算法最强总结

看到一篇很不错的文章,不多说,看吧排序算法说明0.1 排序的定义对一序列对象根据某个关键字进行排序。0.2 术语说明稳定:如果a原本在b前面,而ab,排序之后a仍然在b的前面;不稳定:如果a原本在b的前…

feignclient注解使用_从 Feign 使用注意点到 RESTFUL 接口设计规范

最近项目中大量使用了Spring Cloud Feign来对接http接口,踩了不少坑,也产生了一些对RESTFUL接口设计的想法,特此一篇记录下。SpringMVC的请求参数绑定机制了解Feign历史的朋友会知道,Feign本身是Netflix的产品,Spring …

python写接口测试代码_python写运单接口测试(增改查)完整代码

importrequestsimportjsonfrom urllib importparseclassHttpWayBillRquest:运单的增改查 defaccess_token(self):获取tokenurl http://xxxxxxxxx.comusername 12333password 12334566res_json requests.get(url, auth(username, password)).json()print(access_token的结果为&a…

linux vim自动执行快捷键,Linux Vim快捷键操作命令整理

VIM中常用的替换模式总结1,简单替换表达式替换命令可以在全文中用一个单词替换另一个单词::%s/four/4/g“%” 范围前缀表示在所有行中执行替换。最后的 “g” 标记表示替换行中的所有匹配点。如果仅仅对当前行进行操作,那么只要去掉%即可如果…

eclipse占用内存过大_Java性能调优学习(三)-jmap+mat分析内存溢出问题实战

上一节我们讲了jinfo,jstat,jmap的使用,还简单的讲了下如何使用jmap导出内存映像文件,这次,我们来实战一把内存溢出问题。环境准备首先我们先模拟一下内存溢出的场景,以下这段代码在访问后肯定会造成堆内存…

spring boot自测_将测微仪与Spring Boot 2一起使用

spring boot自测这是快速入门,介绍了如何使用出色的Micrometer库来检测基于Spring Boot 2的应用程序并在Prometheus中记录指标 介绍 Micrometer在不同监视工具提供的客户端库上提供了基于Java的外观。 以Prometheus为例,如果我要将Java应用程序与Prome…

微软和 Windows 的发展简史

20世纪60年代中期,美国达特茅斯学院院长、匈牙利人约翰凯梅尼(J. Kemeny)和数学系教授托马斯卡茨(Thomas E. Kurtz)认为,像FORTRAN(世界上最早出现的计算机高级程序设计语言)那样的语…

elaseticsearch 配置ik分词器的热更新_Elasticsearch从入门到放弃:分词器初印象

Elasticsearch 系列回来了,先给因为这个系列关注我的同学说声抱歉,拖了这么久才回来,这个系列虽然叫「Elasticsearch 从入门到放弃」,但只有三篇就放弃还是有点过分的,所以还是回来继续更新。之前我们聊过了 Elasticse…

服务器windows模拟linux环境,科学网—Windows不用虚拟机或双系统,轻松实现shell环境:gitforwindows - 刘永鑫的博文...

windows缺少shell命令支持用过Linux服务器分析数据的小伙伴,一定对Linux强大Shell命令所折服,经常会感觉windows缺少这些命令而感觉不方便。还有想学习Linux Shell命令的小伙伴,一直没有一个很好的学习环境。双系统安装涉及分区改变对硬盘数据…

Mac OS 系统的发展历史

文章目录System 1.0(1984)System 2.0(1985)System 3.0(1986)System 4.0(1987)System 5.0(1987)System 6.0 (1988)System 7 (1991 )Sys…

苹果公司的电脑发展史——硬件篇

文章目录一、Apple I(1976)二、Apple II(1977)三、Lisa(1983)四、Macintosh(1984)五、PowerBook(1991)六、iMac(1998)七、iBook&#…

my.ini修改后服务无法启动_Spring Cloud Eureka 服务实现不停机(Zero-downtime)部署

问题互联网产品高速迭代,通常伴随着高频次的版本发布。部署新版上线需要重启服务,直接 kill 服务进程可能会造成服务短暂不可用,从而影响到正在使用的用户。Spring Cloud 项目中一般会用到 Ribbon 作为负载均衡,那么是不是只要保证…

苹果电脑 Mac OS X 系统诞生的故事和发展历史

文章目录CoplandNeXTRhapsodyOS XPublic Beta (Kodiak)Mac OS X v10.0 (Cheetah)Mac OS X v10.1 (Puma)Mac OS X v10.2 (Jaguar)Mac OS X v10.3 (Panther)Mac OS X v10.4 (Tiger)Mac OS X v10.5 (Leopard)Mac OS X v10.6 (Snow Leopard)Mac OS X Lion2001 年 3 月 24 日&#x…

Mac OS 的历史

文章目录概述1980年代前20世纪80年代20世纪90年代2000年以后概述 纵观电脑之历史,操作系统与计算机硬件的发展息息相关。 操作系统之本意原为提供简单的工作排序能力,后为辅助更新更复杂的硬件设施而渐渐演化。 从最早的批处理模式开始,分…

java 反射 速度_Java反射,但速度更快

java 反射 速度在编译时不知道Java类的最快方法是什么? Java框架通常会这样做。 很多。 它可以直接影响其性能。 因此,让我们对不同的方法进行基准测试,例如反射,方法句柄和代码生成。 用例 假设我们有一个简单的Person类&#x…

macOS 内核之 OS X 系统的起源

文章目录一、苹果公司早期(1972-1991)二、苹果在操作系统上的尝试(1991-1997)2.1 Star Trek 项目 (1992-1993)2.2 Copland-Mac OS 8 (1994-1996)三、收购与转折(1996-1997)四、NeXT 篇章4.1 NEXTSTEP(1985-1997)4.2 OpenStep(1993-1997)五、Mach 的历史5.1 Rochester’s Intell…

docker create_Docker动手教程2.2:容器基本操作2

内容摘要暂停/取消暂停容器删除容器进入容器创建容器暂停/取消暂停容器暂停容器命令:docker pause 容器ID/容器名注意STATUS列,被暂停的容器的状态依旧是“Up”,但是后面括号显示为“Paused”。取消暂停命令:docker unpause 容器I…

关于 Mac OS X 内核技术来源

Mach(Multiple Asynchronously Communication Hosts) 是一个由卡内基梅隆大学开发的操作系统内核,Mach的开发是为了取代BSD的UNIX核心。 Mach 内核的设计目标之一是要兼容 Unix 系统。 当初他们的设想是,真正的操作系统可以作为一…