初识C语言(2):数据类型和变量

本文介绍了C语言中的数据类型,包括内置类型如char、int、float等及其signed和unsigned修饰,还讨论了变量的分类(全局与局部),算术操作符(加减乘除及取模),赋值运算符,以及单目操作符(自增、自减)。此外,提到了强制类型转换在处理不同类型数据时的重要性。
摘要由CSDN通过智能技术生成

大家好,本次学习了c语言的数据类型和运算符,以下是我的学习收获

数据类型:内置类型,自定义类型

*此次只讨论内置类型
一. 内置类型分类

  1. 字符型 char
  2. 整型 short int / int / long int / long long
  3. 浮点型 float / double / long double
  4. 布尔类型_Bool *使用时需要包含头文件<stdbool.h>
    1.1 signed和unsigned
    c语言使用这两种方式来修饰字符型和整型类型
    signed关键字表示一个类型带有正负号
    unsigned关键字表示该类型不带正负号只表示0和正整数
    注意:int默认是signed类型
    char类型默认是否带有正负号由系统决定
    1.2 数据类型在存储中所占字节
#include <stdio.h>
int main (){
printf("%d\n",sizeof(char));
printf("%d\n",sizeof(short));
printf("%d\n",sizeof(int));
printf("%d\n",sizeof(long));
printf("%d\n",sizeof(long long));
printf("%d\n",sizeof(float));
printf("%d\n",sizeof(double));
return 0;
} 

分别输出 1 2 4 8 8 4 8
在输出long的字节时有的系统输出8有的输出4,若想写一个8字节的int变量请使用long long
二.变量的分类
全局变量:在大括号外部定义的变量叫做全局变量,在任何括号中都能调用它。
局部变量:在大括号内部定义的变量,只能在局部范围内使用
2.1全局变量/局部变量在存储中的位置
局部变量放在内存栈区中
全局变量放在内存的静态区中
三.算术操作符+,-,*,/
算术操作符都是双目操作符
双目操作符:两边都有操作数的操作符
3.1 运算图示

int a,b,c;
c=a+b;
c=a-b;
c=a*b;
c=a/b;

若相除时使用整数除那么结果也将是整数

#include <stdio.h>
int main(){
int a=7/4;
float b=7.0/4;
return 0;
}

结果是完全不相同的,a=1,b=1.750000
因为int是整数除,在除的过程中会发生截断,只保留整数部分
若想要小数除,需要使用float/double来定义变量,并且除号任意一边需要有小数部分
注意,在c语言中float类型的数据会自动转换成double类型的变量,若只想使用float类型的变量,请添加f

float a=7.3f;

3.2 取模运算 %
即返回两个整数除的余数,只能使用整数除不能用于浮点数
负数取模的规则是结果的正负号只由第一个运算数的正负号决定

#include <stdio.h>
int main(){
printf("%d\n",11%5);
printf("%d\n",-11%5);
printf("%d\n",11%-5);
return 0;
}

结果分别为 1,-1,1
四.赋值运算符:= 以及复合赋值
给变量一个初始值叫做变量的赋值运算
一次性给多个变量赋值叫做连续赋值
一个变量自增自减操作叫做复合赋值

#include <stdio.h>
int main(){
int a=5,b,c;  //a这叫做赋值运算
b=c=a; //这叫做连续赋值
a=a+3; //这叫做复合赋值
return 0;
}

五.单目操作符:++,–,-,+
分为 前++,后++,前–,后–。
前++:先自+1,再运算
后++:先运算,再自+1
前–:先自减-1,再运算
后–:先运算,再自减-1

#include <stdio.h>
int main(){
int a=5,b=6,c;  
++a;
printf("%d",a); //算出a=6
c=a++;
printf("%d",c);//c=6,此时a自+1,a=7
--b;
printf("%d",b);//此时b=5
c=b--;
printf("%d",c);// 此时c=5,b自减1,b=4
return 0;
}

5.1 +和-
这里的±作为正负号看,是单目运算符
5.2强制类型转换
(强制类型)数据
当发现我们要使用的数据类型与数据不符,就需要强转

#include <stdio.h>
int main() {
	float a = 3.14;
	int b=3.14;
	printf("%f\n",(double)b);//将int类型的b转换成浮点型输出
	printf("%d",(int)a);//将float类型的a转换成int类型输出
	return 0;
}

结果为
在这里插入图片描述
本次学习到此结束,加油!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值