初学C语言(数据类型和变量)

来给大家介绍一下数据类型和变量。

1.语句和语句分类

2.数据类型介绍

3.signe和unsigned

4.数据类型取值范围

5.变量

6.操作符

1.语句和语句分类

简单的说分号隔开的就是一条语句,语句可以分成五种类型

 这里先简单的给大家列举一下,以后再给大家详细介绍。

2.数据类型介绍

我们日常生活中见到的数据是多种多样的,他们有正的有负的,有整数有小数,有字母有数字,它们在内存中所占的空间也是不一样的,因此我们要把它们分类以便于管理和应用。

数据类型包括内置类型也就是C语言与生俱来的数据类型,共有四种分别是字符类型,整形,浮点型,布尔类型。另一种则是自定义类型即人为创建的类型,它包括数组,结构体,枚举和联合体。这里我们着重介绍内置类型。

 1.字符类型

字母,数字,中英文字符以及一些特殊的符号都是字符,在C语言中用char表示字符类型,并用单引号引用,比如‘A’就是一个字符。char其实是signed char的简写,它是指有符号字符型,unsignde char是无符号字符型,他们的区别在于所取值得范围不同,取值范围的问题会在下面详细讲解哦。需要注意的是在输出字符的时候用的是%c。

#include<stdio.h>
int main()
{
  char ch='a';
  printf("%c\n",ch);
  return 0; 
}

2.整形

 这四种类型又分别可以分为有符号和无符号两种类型,所以总的来说一共是八种类型。这四种类型所占的内存空间是不同的

 输出的结果是以字节为单位的,short类型在内存中占两个字节,在这里小伙伴们可能会有疑问,int和long int在内存中都占4个字节,为什么还要区分呢?其实这是C语言的一个规定long int>=int,也就是说long int可以占4个字节也可以占8个字节。

3.浮点型

首先给大家介绍一下他为什么叫做浮点,我们在上小学的时候就学过小数和科学计数法,就像1.23也可以写成0.123*10^1,小数点的位置发生了浮动,因此就叫做浮点型。浮点型分为单精度浮点型float和双精度浮点型double,它们主要有以下三点区分

精度不同,float是单精度浮点型,精度为7~8位有效数字,double的精度为16~17位有效数字;

存储空间不同,float的比特数为32,在内存中占四个字节,double的比特数为64,在内存中占用八个字节;

表示范围不同,float的取值范围是-3.4e-38~3.4e38,double的取值范围是-1.7e-308~1.7e308

4.布尔类型

我们知道在C语言中0表示假,非0表示真,在C99中专门引入了布尔用来表示真假,布尔类型取值只有ture和false两种,在使用布尔类型的时候需要包含头文件<stdbool.h>。

3.signed和unsigned

signed和unsigned是用来修饰整形和字符型的,signed表示这个类型有正负之分,signed是默认的它在存储的时候符号位要占用内存中的一个比特位,而unsigned则只能表示0和正整数,准确的来说unsigned是将数字类型无符号化。它们所表示的范围也有很大的差异,声明unsigned的好处在于同样大小的内存表示的最大整数值比signed大了一倍,例如int能表示的最大整数为2^31,unsigned能表示的最大整数为2^32。

4.数据类型取值范围

C语言中的数据类型都有相应的范围,我们在VS中查看它们的范围的时候需要包含头文件<limits.h>,例如我要查看int类型的范围

 INT_MIN和INT_MAX这些符号常量是头文件<limits.h>里的宏定义,当我们想给一个变量赋intl类型的最小值时我们可以直接写成int a=INT_MIN;

5.变量

5.1变量的创建

创建变量的时候要有两个要素即数据类型和变量名,例如int a,这就完成了一个变量的创建,我们一般在创建变量的时候会对变量进行初始化处理,例如int a=10

5.2变量分类

变量分为局部变量和全局变量,通俗的来讲全局变量定义在大括号外面,在整个工程中都能使用,局部变量定义在大括号内部,只在局部范围内有作用

 

 

全局变量和局部变量在内存中的存放也有一定的区别,我们知道内存中有栈区,堆区和静态区,而我们的全局变量就存放在静态区,局部变量存放在栈区。

6.操作符

6.1算数操作符

算数操作符包括+,-,*,/(取整),%(取余),在这里主要介绍/和%。

 简单的来说变量c的值就是5除以三取整数部分即商数,d就是5除以3取余数部分。

6.2赋值操作符(双目操作符)

赋值操作符是=,==是等于操作符,这跟我们平时用的等于号有些许不同,a=3就是将3赋给a。它采用右结合定律即当遇到a=b=c=5这样的表达式时,它的运算顺序是这样的,5先赋给c,c的值再赋给b,b的值再赋给a,就相当于a=(b=(c=5))。

在C语言中我们常见的还有+=,-=,*=,/=,%=,它们的运算规则与=是一样的,用+=举例,a+=5就是a=a+5。

6.3位操作符

&(按位与),|(按位或),^(按位异或),在讲位操作符之前,我们首先要明白,在C语言中0为假非0为真。

&:左右两个操作数的每一位相对应的进行与运算,所谓的与运算就是两边都为真结果才为真

 这里要注意的是并不是说因为a,b都是真结果才为真,要把3和5转化成二进制数然后再对应位进行真假判断,0与0为0,0与1为0,1与0为0,1与1为1,则结果为1(非零数)。

|:它与&的运算方法是一样的,但是它在左右两个操作数有一个为真时即使真;

^:运算方法与&,|相同,它在左右两个操作数相同时(都为真或都为假)为0,不同时为1。

6.4逻辑操作符

&&(逻辑与):左右两个操作数都为真时为真其余为0;

||(逻辑或):左右两个操作数有一个为真即为真

!(逻辑非):对操作数进行反向操作

6.5关系操作符

关系操作符我们就很常见了,<,><=,>=,!=(不等于),==(测试相等),这里就不过多介绍了

6.6条件操作符

exp1?exp2:exp3(表达式1?表达式2:表达式3),这种运算符我们是不常见到的,它的运算顺序是,若表达式1为真则执行表达式2,否则则执行表达式3。

6.单目,双目和三目操作符

首先单目,双目和三目的意思分别是有一个操作数,两个操作数和三个操作数。向上面我们介绍的逻辑非为单目操作符,算数操作符为双目操作符,条件操作符为三目操作符。这里我们着重要介绍一下++(自增1的操作符),--(自减1),要注意的是a++和++a是不一样的,比如b=a++,这时是先赋值后自增,若是b=++a,则是先自增再赋值

 运行结果为b为10也就是先赋值,赋值后a已自增为11,c的结果为a为11的基础上先自增到12再赋值。

操作符我们就先介绍到这里,还有一个很重要的知识点就是操作符的运算顺序,如下图

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值