龙空技术网

第2章 变量与数据类型——变量与基本数据类型(一)

菜园子dz 178

前言:

如今大家对“c语言中变量可以重复定义吗”大体比较重视,同学们都想要知道一些“c语言中变量可以重复定义吗”的相关资讯。那么小编同时在网上收集了一些关于“c语言中变量可以重复定义吗””的相关知识,希望咱们能喜欢,同学们快快来了解一下吧!

变量变量的引入:

一个程序就是一个世界

不论是使用哪种高级程序语言编写程序,变量都是其程序的基本组成单位,

变量的介绍:

变量相当于内存中一个数据存储空间的表示

变量的使用步骤:

1.声明

2.赋值

3.使用

代码练习:

package mainimport "fmt"func main(){	//1.变量的声明	var age int 	//2.变量的赋值	age = 18	//3.变量的使用	fmt.Println("age = ",age)	var age2 int = 19	fmt.Println("age2 = ",age2)	// 变量的重复定义会报错:	// var age int = 10	// fmt.Println("age = ",age)	// 不可以在赋值的时候给与不匹配的类型	// var num int = 12.45	// fmt.Println("num = ",num)}
变量的4种使用方式:
package mainimport "fmt"func main()  {	//第一种:变量的使用方式:指定变量的类型,并且赋值,	var num int = 18	fmt.Println("num = ",num)	//第二种:指定变量的类型,但是不赋值,使用默认值	var num2 int 	fmt.Println("num2 = ",num2)	//第三种:如果没有写变量的类型,那么根据=后面的值进行判定变量的类型 (自动类型推断)	var num3 = "golang"	fmt.Println("num3 = ",num3)	//第四种:省略var,注意 := 不能写为 =   	sex := "女"	fmt.Println("sex = ",sex)}
支持一次性声明多个变量(多变量声明)
package mainimport "fmt"//全局变量:定义在函数外的变量var n7 = 100var n8 = 9.7//设计者认为上面的全局变量的写法太麻烦了,可以一次性声明:var (        n9 = 500        n10 = "netty")func main()  {	//定义在{}中的变量叫:局部变量		//声明多个变量:	var n1,n2,n3 int	fmt.Println(n1)	fmt.Println(n2)	fmt.Println(n3)	var n4,name,n5 = 10,"jack",7.8	fmt.Println(n4)	fmt.Println(name)	fmt.Println(n5)	n6,height := 6.9,100.6	fmt.Println(n6)	fmt.Println(height)	fmt.Println(n7)	fmt.Println(n8)		fmt.Println(n9)	fmt.Println(n10)}
数据类型

基本数据类型拓展:进制和进制转换

【1】进制的介绍:

十进制整数,如:99, -500, 0

八进制整数,要求以 0 开头,如:015

十六进制数,要求 0x 或 0X 开头,如:0x15

二进制:要求0b或者0B开头,如:0b11

几进制:就是逢几进1的问题:

平时实际生活中用的最多的是:十进制

计算机用二进制最多

【2】二进制转换为十进制:

二进制: 1101

1*2^3 + 1*2^2 + 0*2^1 + 1*2^0

= 8 + 4 + 0 + 1

= 13

【3】十进制转换为二进制:

十进制 13

【4】八进制转换十进制:

八进制: 16

1*8^1 + 6*8^0

= 8 + 6

=14

【5】十进制转换为八进制:

十进制14:

【6】八进制转换为十六进制:

把十进制当做一个中转站:

八进制---》十进制---》十六进制

实际上根本不用自己转换这么麻烦:我们可以直接用系统中提供给我们的计算器:

整数类型

【1】整数类型介绍:

简单的说,就是用于存放整数值的,比如10,-45,6712等等。

【2】有符号整数类型:

PS:127怎么算出来的?

01111111 -->二进制 ---》转为十进制:

1*2^6 + 1*2^5 + 1*2^4 + 1*2^3 + 1*2^2 + 1*2^1 + 1*2^0

= 64 + 32 + 16 + 8 + 4 + 2 + 1

= 127

PS:-128怎么算出来的?

10000000 --->二进制 --->一看就是个负数

10000000 --》负数的二进制

减1:01111111

取反:10000000 ---》得到一个正数 2^7 = 128

加负号:-128

代码测试超出范围:

【3】无符号整数类型:

表数范围的边界计算:

11111111= 2^7+127 = 128 + 127 = 255

00000000 = 0

超出边界报错:

【4】其他整数类型:

PS:Golang的整数类型,默认声明为int类型

PS :变量占用的字节数:

【5】这么多整数类型,使用的时候该如何选择呢?

Golang程序中整型变量在使用时,遵守保小不保大的原则,

即:在保证程序正确运行下,尽量使用占用空间小的数据类型

// 表示学生的年龄	var age byte = 18	fmt.Println(age)
浮点类型

【1】浮点类型介绍:

简单的说,就是用于存放小数值的,比如3.14、0.28、-7.19等等。

【2】浮点类型种类:

PS:底层存储空间和操作系统无关

PS:浮点类型底层存储:符号位+指数位+尾数位,所以尾数位只是存了 一个大概,很可能会出现精度的损失。

【3】代码:

package mainimport "fmt"func main(){        //定义浮点类型的数据:        var num1 float32 = 3.14        fmt.Println(num1)        //可以表示正浮点数,也可以表示负的浮点数        var num2 float32 = -3.14        fmt.Println(num2)        //浮点数可以用十进制表示形式,也可以用科学计数法表示形式  E 大写小写都可以的        var num3 float32 = 314E-2         fmt.Println(num3)        var num4 float32 = 314E+2        fmt.Println(num4)        var num5 float32 = 314e+2        fmt.Println(num5)        var num6 float64 = 314e+2        fmt.Println(num6)        //浮点数可能会有精度的损失,所以通常情况下,建议你使用:float64         var num7 float32 = 256.000000916        fmt.Println(num7)        var num8 float64 = 256.000000916        fmt.Println(num8)        //golang中默认的浮点类型为:float64         var num9 = 3.17        fmt.Printf("num9对应的默认的类型为:%T",num9)}
字符类型

【1】Golang中没有专门的字符类型,如果要存储单个字符(字母),一般使用byte来保存。

【2】Golang中字符使用UTF-8编码

【3】ASCII码表:

左面是不可见字符 右面是可见字符

【4】查看UTF-8编码表:

【5】代码:

package mainimport "fmt"func main(){        //定义字符类型的数据:        var c1 byte = 'a'        fmt.Println(c1)//97        var c2 byte = '6'        fmt.Println(c2)//54        var c3 byte = '('        fmt.Println(c3 + 20)//40        //字符类型,本质上就是一个整数,也可以直接参与运算,输出字符的时候,会将对应的码值做一个输出        //字母,数字,标点等字符,底层是按照ASCII进行存储。        var c4 int = '中'        fmt.Println(c4)        //汉字字符,底层对应的是Unicode码值        //对应的码值为20013,byte类型溢出,能存储的范围:可以用int        //总结:Golang的字符对应的使用的是UTF-8编码(Unicode是对应的字符集,UTF-8是Unicode的其中的一种编码方案)        var c5 byte = 'A'        //想显示对应的字符,必须采用格式化输出        fmt.Printf("c5对应的具体的字符为:%c",c5)}

【6】转义字符:

\转义字符:将后面的字母表示为特殊含义

package mainimport "fmt"func main(){        //练习转义字符:        //\n  换行        fmt.Println("aaa\nbbb")		fmt.Println()        //\b 退格        fmt.Println("aaa\bbbb")		fmt.Println()        //\r 光标回到本行的开头,后续输入就会替换原有的字符        fmt.Println("aaaaa\rbbb")		fmt.Println()        //\t 制表符        fmt.Println("aaaaaaaaaaaaa")		fmt.Println()        fmt.Println("aaaaa\tbbbbb")		fmt.Println()        fmt.Println("aaaaaaaa\tbbbbb")		fmt.Println()        //\"        fmt.Println("\"Golang\"")}

参考源代码:

参考原文:cyz

标签: #c语言中变量可以重复定义吗