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 socket默认超时时间设置,Socket中如何设置连接超时 (转)

Socket中如何设置连接超时 (转)Socket中如何设置连接超时AntGhazi/2001.12.14 主页:antghazi.yeah把CSDN与中文翻了底朝天,也没找到如何设置socket的连接超时的满意方法,问此问题的兄弟已有一大堆,这里偶就讲一下win下如何设置soc…

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的前…

linux安装2870无线网卡,ubuntu15.04安装usb无线网卡

一般这种无线网卡都是联fake芯片,我使用的ralin(你懂的k)的usb无线1150 M。你去找lei凌官网找不到,只能去找芯片类型的制造者,所以只能去联Fake官网查询下载对应型号。1、我是这样子查看型号的,找到通过驱动软件检测并已经安装成功…

Linux 应用程序的源码包如何安装?

文章目录configuremakemake install关于文件 configure 的简单介绍其它命令简介C 语言开发的应用程序的源码包常以 .tar.gz 为扩展名,并且这些源码包通常使用 GNU 的 AUTOCONF 和 AUTOMAKE 生成编译配置文件,我们拿到这样的软件包后,执行下面…

exec su-exec_WildFly Kubernetes exec探针

exec su-exec活动性和就绪性探针会告诉Kubernetes,某个Pod是否正在运行并准备进行一些工作。 企业应用程序可以通过HTTP探测应用程序的状态。 如果没有暴露HTTP端点,Kubernetes也可以通过执行命令进行探测。 WildFly附带了有用的jboss-cli.sh 。 此CLI检…

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

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

Linux 的发行版 Ubuntu 的发展简史

Ubuntu(又称乌班图)是一个是基于 Debian GNU/Linux 的以桌面应用为主的免费开源的 GNU/Linux 操作系统,由全球化的专业开发团队 Canonical 公司打造的。 Ubuntu Linux 是由南非人马克沙特尔沃思(Mark Shuttleworth)创办的基于 Debian Linux的…

linux实验报告五gcc编译,Linux之GCC命令 -- 解析GCC编译的四个过程

在Linux下进行C语言编程,必然要采用GNU GCC来编译C源代码生成可执行程序。Gcc指令的一般格式为:Gcc [选项] 要编译的文件 [选项] [目标文件]。其中,目标文件可缺省,Gcc默认生成可执行的文件名为:编译文件.out看一下经典…

python创建虚拟环境命令_Python创建虚拟环境报错

我使用命令:mkvirtualenv -p python3 test1,创建虚拟环境,然后报错如下(),虚拟机是用nat模式的: Exception: Traceback (most recent call last): File "/home/python/.virtualenvs/test11/share/python-wheels/urllib3-1.13.1-py2.py3-…

java7和java8切换_切换表达式到Java吗?

java7和java8切换已创建一个标题为“ Java语言的开关表达式”的JEP草案 。 当前的“摘要”状态为:“扩展switch语句,以便可以将其用作语句或表达式,并改善switch处理null的方式。 这些将简化日常编码,并为在switch使用模式匹配做好…

Xenix 操作系统的简史

简介 Xenix 是一种UNIX操作系统,可在个人电脑及微型计算机上使用。该系统由微软公司在1979年从美国电话电报公司获得授权,为Intel处理器所开发。后来,圣克鲁兹作业公司(SCO)收购了其独家使用权,自那以后&a…

servlet 配置 使用_配置HTTPS以与Servlet一起使用

servlet 配置 使用要配置Java EE应用程序以通过HTTPS进行通信,需要在web.xml文件中使用几行XML。 web.xml文件位于项目的WEB-INF目录中,通常在IDE生成Java EE Web应用程序时自动创建。 如果不是,您可以自己创建它。 HTTPS的动机 为Web应用程…

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终端cd未找到命令,为什么`which`命令不能用于`cd`?我也找不到`cd`的可执行文件!...

问题描述我尝试了which cd,它没有给出路径,而是返回退出代码1(用echo $?检查)。 coreutil cd本身正在工作,所以可执行文件应该在那里,对吧?我还为cd运行了find,但没有显示可执行文件。那怎么实现呢&#x…

Xenix — 微软与UNIX的短暂爱恋

微软向外宣布Microsoft Xenix OS,一个为16位微处理器开发的可移植的操作系统。它是一个交互的,多用户多任务系统,可以运行在Intel 8086, Zilog Z8000, Motorola M68000以及DEC公司的PDP-11系统计算机上。所有微软已经开发的系统软件&#xff…

optionals_Java Optionals获得更具表现力的代码

optionals我们中任何使用允许空引用的语言进行编程的人,都将在尝试取消引用一个引用时经历过。 无论是导致segfault还是NullPointerException,它始终是一个错误。 托尼霍尔将其描述为他十亿美元的错误 。 当函数向客户端的开发人员未预料到的客户端返回空…

python排序sorted_sorted排序的两个方法 - Python

在给列表排序时,sorted非常好用,语法如下: sorted(iterable[, cmp[,key[,reverse]]]) 简单列表排序,很容易完成,sorted(list)返回的对象就是列表结果,但是遇到列表中嵌套元组时,需要使用特殊的方…

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

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