一、数据类型
C语言中内置的数据类型有char(字符)、short(短整型)、int(整形)、long(长整形)、long long(更长的整形)、float(单精度浮点数)、double(双精度浮点数)
那么,为什么出现这么多的类型呢?
其实,存在这么多的类型,是为了更加丰富的表达生活中的各种值。
二、变量与常量
不变的值,C语言中用常量的概念来表示,变化的值C语言中用变量来表示。
变量有全局变量和局部变量之分。
这里举出一个特殊的栗子:
由上图可以知道,此时main函数里面和外面均有变量‘a’,那么此时运行的结果是20,则说明了当局部变量和全局变量同名的时候,则局部变量优先使用。(建议:不要将全局变量与局部变量的名字写成一样的)
三、数组
1.定义:一类相同元素的集合
2.数组的下标:数组的每一个元素都有一个下标,下标是从0开始的。
3.比较数组中sizeof与strlen的用法
由图中可以知晓,数组中均存放了“hello bit”,但存放的方式又有点小差别,arr1与arr2中均存放的是字符串,而arr3与arr4中均存放的是字符。(字符串中的结束标志是一个\0的转义字符。在计算字符串长度的时候\0是结束标志,不算字符串的内容)
我们先来了解一下sizeof与strlen的区别:
sizeof是一个操作符,其可以帮助我们求得字符串所占空间的大小
strlen是一个内置函数,其可以帮助我们求得字符串长度的大小
由上图的关系可以知道,两者的区别在于sizeof计算时会将字符串后面的\0计算进去。
原因:
arr1[10]:“hello bit”是一个字符串,结尾有\0,故sizeof计算得出来的结果为10,strlen计算的结果是9
arr2[]:原因同arr1[]
arr3[10]:该数组存放的是字符:'h', 'e', 'l', 'l', 'o', 'b', 'i', 't',但在创建arr3数组时候,向内存空间申请了10个字节,故用sizeof计算出来的结果为10,而用strlen计算出来的结果是8(虽然此时没有\0,但该数组的内存地址已经创建完成,strlen无法继续非法访问,与arr4[]计算结果的差异)