C#基本数据类型
在第一章我们了解了C#的输入、输出语句后,我这一节主要是介绍C#的基础知识,本节的内容也是后续章节的基础,好的开端等于成功的一半。在你阅读完本章后,你就有足够的C#知识编写简单的程序了。但还不能使用继承或其它面向对象的特征。
本章主要针对以下几个部份来进行讲解:
1、电脑是由什么来存储所使用的数据?
2、基本数据类型有哪些?
3、如何声明变量和赋值?
4、变量和常量的区别?
5、不同数据类型之间是如何转换的?
下面,我们现一个一个的来了解这些问题。
一、电脑是由什么来存储所使用的数据?
这个问题用一句话比较笼统的概括,那就是:电脑使用内存来记忆计算时所使用的数据。
在现实生活中的数据各种各样,整数、小数、字符串、字符等等,它们都类型是不一样的,所以你要想在计算机中使用这些类型,就必须在内存中为它申请一块合适的空间。
那有哪些数据类型是C#能使用的呢?我们一起来看一看.
二、基础数据类型有哪些
首先要了解一点:C#认可的基础数据类型并没有内置于C#语言中,而是内置于.net Framework中。
如,在c#中声明一个int类型的数据时,声明的实际上是.net结构System.Int32的一个实例。这听起来似乎很深奥,但其意义深远:这表示在语法上,可以把所有的基础数据类型看作是支持某些方法的类。
类型实际上仍存储为基本类型。基本类型在概念上用.Net结构表示,所以肯定没有性能损失。
下面大家一起来了解一下C#中定义的内置类型,我们将列出每个类型,以及它们的定义和对应的.net类型(CTS类型)的名称。
c#有15个预定义类型,其中13个是值类型,两个是引用类型(string 和 object)
1、整型
2、浮点类型
float数据类型用于较小的浮点数,因为它要求的精度较低。
double数据类型比float数据类型大,提供的精度也大一倍(15位)。
如果在代码中没有对某个非整数值(如12.3)硬编码,则编译器一般假定该变量是double。
如果想指定该值为float,可以在其后加上字符F(或f),如:
float f = 12.3F;
3、decimal类型
decimal类型专门用于进行财务计算,使用decimal类型提供的28位的方式取决于用户。
要把数字指定为decimal类型,可以在数字的后面加上字符M或(m),如:
decimal d=12.30M;
4、bool(布尔)类型
5、char字符类型
char类型的字变量是用单引号括起来的。 如'A'
如果把字符把在"A"(双引号)内,编译器会把它看作是字符串,从而产生错误。
6、引用类型(Object类型和字符串类型)
三、如何声明变量和赋值?
1、变量的定义:是指在程序的运行过程中随时可以发生变化的量
2、上面我们提到,变量在运行时当中是存在内存当中的,它是一个临时的存放场所。
那么在内存当中,可以存放如数字、字符串、日期等等各种类型的数据。
大家可以看一看这张图,它就把表示内存当中的一个状态。 简单的来说,变量就是表示内存当中的一块存储区域。 它会对应一个唯一的内存地址,但是我们在使用程序当时候,内存地址不好理解也不好记忆。 那么怎么办呢? 在日常生活当中我们都有一个名字,如"张三“、”李四“等,这些名字就是为了便于记忆。 那么同样,在程序当中,为了区别多个变量,那就需要为每个变量赋值一个简短,便于记忆的名字, 这就是变量名。 |
3、 C#中的变量的命名是是有规则的:
1)、由字母、数字或下划线"_"组成
2)、必须由字母或下划线"_"开头,不能以数字开头
3)、不能是c#中的关键字 如:int、string、bool、Main、class等
4)、区分大小写 如:小写的a 和 大写的A 是两个变量
4、做为一个比较好的学习者,就必须遵守一些变量命名规范:
1)、变量的名字要有意义,尽量用对应的英语命名,具有“见名知意“的作用。
如:姓名 变量取名为 name 或者 用拼单 xingMing,避免用a,b,c来进行命名。
2)、避免使用单个字符作为变量名( 除在循环里面定的变量)
3)、当使用多个单词组成变量名时,应该使用骆驼(Camel)命名法
骆驼(Camel)命名法:第一个单词的首字母小写,其它单词的首字母大写,如:myName,myAge
选择题:以下变量命名正确的是( )
A、name、 _222*1、 9class、 public
B、_teacher、 void、 string、 myName
C、$Age、 corss、 fire、 _grade
D、_glass、 g23、 c_12、 my_first_2
5、变量的声明和赋值
1)定义变量的语法:
数据类型 变量名; (定义一个年龄的变量,年龄是整数,所以变量定义如下:)
int age; [系统会根据数据类型,在内存中分配不同大小的存储空间]
每个数据类型后面,可以定义多个变量,如:(定义姓名、家庭地址、籍贯、民族)
string name,address,origin,national ;
2)为变量赋值语法:
变量名 = 值;
(这里的=号表示赋值运算符,把=号右边的值,赋值给左边的变量名,最后以一个;[分号]结束)
如:年龄18岁,姓名为“小张",家庭地址为“重庆南坪XXX",
籍贯为“重庆",民族为“汉"
age = 18 ;
name = "小张" ;
address = "重庆南坪XXX" ;
origin = "重庆" ;
national = "汉" ;
四、变量和常量的区别
变量:是指在程序的运行过程中随时可以发生变化的量
常量:是指在程序在运行过程中不会发生变化的变量
常量的特点:
1、必须在声明是赋值
2、不能在在程序运行时,给常量赋值
3、常量是静态的。不必须(实际上,是不允许)在常量声明中包含修饰符static
五、不同数据类型之间是如何转换的
在C#中数据类型转换分为两种:1)隐式[又叫自动]类型转换 2)显式[又叫强制]类型转换
举个简单例子:
飞机场里面停飞机,这是理所当然,我们把这种叫做隐式[又叫自动]类型转换
那如果我们反过来看一看,飞机里面装飞机场,这个在我们实际生活中,觉得这是根据不可能的,
但是程序可能做到这一点,我们把这种叫做显式[又叫强制]类型转换
在C#中数据类型转换分为两种:1)隐式[又叫自动]类型转换 2)显式[又叫强制]类型转换
举个简单例子:
飞机场里面停飞机,这是理所当然,我们把这种叫做隐式[又叫自动]类型转换
那如果我们反过来看一看,飞机里面装飞机场,这个在我们实际生活中,觉得这是根据不可能的,
但是程序可以做到这一点,我们把这种叫做显式[又叫强制]类型转换
double和int之间就是(飞机场与飞机)这种关系,我们可以这样理解,double的取值范围比int要大得多
所以double可以装得下int :
int a=1234;
double b=a; 系统会把a整型变量的值赋值给double变量b.这就是隐式[又叫自动]类型转换
那反过来:
double a=1234;
int b=a; //系统编译时会报错,如图:
那如何进行强制转换呢?c#提供了非常简便的方法,如:
double a=1234;
int b=(int)a; //这样就强制把double类型,转换为int类型
最后,再介绍一下,其它数据类型之间的转换(1、字符串转换为其它类型 2、任意类型之间的转换)
1)、字符串转换为其它类型
语法:
XX.Parse(字符串); 这里的xx代表的如:double,int,bool等
举个例子来说明一下:
string strValue="123.45"; //这是一个字符串,时面的值是"123.45"
现要把它转换成小数类型,就可以使用double.Parse();来进行转换
double dValue=double.Parse(strValue);
2)、任意类型之间的转换
语法:
Convert.ToXX(任何类型);
如:把一个布尔类型转换为整型
bool a = true;
int b = Convert.ToInt16(a);
Console.WriteLine("转换后的结果是:"+b); //转换后的结果是:1
C#基本数据类型的更多相关文章
- JavaScript 中的数据类型
Javascript中的数据类型有以下几种情况: 基本类型:string,number,boolean 特殊类型:undefined,null 引用类型:Object,Function,Date,Ar ...
- JS 判断数据类型的三种方法
说到数据类型,我们先理一下JavaScript中常见的几种数据类型: 基本类型:string,number,boolean 特殊类型:undefined,null 引用类型:Object,Functi ...
- Python高手之路【二】python基本数据类型
一:数字 int int(整型): 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位系统上,整数的位数为64位,取值 ...
- UniqueIdentifier 数据类型 和 GUID 生成函数
UniqueIdentifier 数据类型用于存储GUID的值,占用16Byte. SQL Server将UniqueIdentifier存储为16字节的二进制数值,Binary(16),按照特定的格 ...
- SQL Server常见数据类型介绍
数据表是由多个列组成,创建表时必须明确每个列的数据类型,以下列举SQL Server常见数据类型的使用规则,方便查阅. 1.整数类型 int 存储范围是-2,147,483,648到2,147,483 ...
- 由js apply与call方法想到的js数据类型(原始类型和引用类型)
原文地址:由js apply与call方法想到的js数据类型(原始类型和引用类型) js的call方法与apply方法的区别在于第二个参数的不同,他们都有2个参数,第一个为对象(即需要用对象a继承b, ...
- python 数据类型 ----字典
字典由一对key:value 组成的 python中常用且重量级的数据类型 1. key , keys, values 字典由一对key:value 组成的 python中常用且重量级的数据类型 1. ...
- SQL数据类型
1.Character 字符串: 数据类型 描述 存储 char(n) 固定长度的字符串.最多8,000个字符. n varchar(n) 可变长度的字符串.最多8,000个字符. varchar ...
- 跟着老男孩教育学Python开发【第二篇】:Python基本数据类型
运算符 设定:a=10,b=20 . 算数运算 2.比较运算 3.赋值运算 4.逻辑运算 5.成员运算 基本数据类型 1.数字 int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**3 ...
- 我的MYSQL学习心得(二) 数据类型宽度
我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
随机推荐
- php弱类型
此处写ctf中遇到的==和md5值为0e**的应用. 数组和字符的=== ==
- [大牛翻译系列]Hadoop(5)MapReduce 排序:次排序(Secondary sort)
4.2 排序(SORT) 在MapReduce中,排序的目的有两个: MapReduce可以通过排序将Map输出的键分组.然后每组键调用一次reduce. 在某些需要排序的特定场景中,用户可以将作业( ...
- ZOJ3718 Diablo II(状态压缩dp)
题意:一个人物有K(K<=7)种技能,每种技能都有bi,ci,di值,表示该技能不能点超过bi次,每点一次加ci,点满bi次有一个附加得分di.然后还有N件武器,武器本身会有能力加成,然后每个武 ...
- HDU 1098 Ignatius's puzzle(数学归纳)
以下引用自http://acm.hdu.edu.cn/discuss/problem/post/reply.php?postid=8466&messageid=2&deep=1 题意以 ...
- JS中 判断null
以下是不正确的方法: var exp = null; if (exp == null) { alert("is null"); } exp 为 undefined 时,也会得到与 ...
- 【OpenCV入门教程之二】 一览众山小:OpenCV 2.4.8组件结构全解析
转自: http://blog.csdn.net/poem_qianmo/article/details/19925819 本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接:ht ...
- 妙味课堂——HTML+CSS(第一课)
一句话,还记忆不如烂笔头,何况还这么笨,记下笔记,也是记录这一路学习的过程. 妙味课堂第一课并未一味地先讲HTML,而是穿插着CSS讲解,这一点不同于一些其他视频,这一点挺特别的!所以这一课涉及到HT ...
- 【poj3691-DNA repair】AC自动机+DP
题意:给n个病毒DNA序列,再给一个DNA序列,问该序列至少修改多少个碱基能不含任何病毒DNA.病毒DNA序列一共不超过1000,询问的DNA长度不超过1000. 题解:DP:d[l][p]表示询问到 ...
- 10 signs you’re dating the wrong person
10 signs you’re dating the wrong person10个迹象表明TA不是你的真心人 Do you have any exes who were so awful ...
- PHP页面跳转几种实现技巧
PHP被许多程序员用来开发WEB的首选语言.在实际开发中,网站的各项功能都可以通过PHP语言的编写来满足,比如PHP页面跳转这一方法. 探讨PHP变量解析顺序如何获取提交数据 深入解读PHP运行机制 ...