前言:
如今大家对“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语言中变量可以重复定义吗