上一篇写的好差还有好多错字,在这里自罚亿杯X1000........
嗝——嗝——......
言归正传,上一篇写的什么来着,嗯?嗯?嗯?我也忘了.......
正片开始
最近又学习了好多关于C语言的知识感觉有点学不过来了,可能这就是学习的痛苦吧。无所谓我会放弃今天啥也没学就到这吧,拜拜。
正片
今天跟大家分享一下我最近学习的C语言的数据类型和变量。
数据类型
数据类型顾名思义就是数据的类型(感觉像废话一样),C语言中有很多的数据类型都是C语言它自己规定的你不能进行修改。常用的数据类型是整数型和浮点型,整数型的意思就是用来告诉编译器我这个数是整数,浮点型呢就是小数的意思。奉上一个图片以供大家参考:
字符型 :char 、整形:int 、浮点型:float double long double
实例:
//字符型
char i ;//
signed char;//有符号的
unsigned char;//无符号的
//整型
int;
short int;//短整型
long int;//长整型
signed int;//有符号的整型
signed short int;//符号的短整型还有很多自行组合
//浮点型
float;//单精度浮点型
double;//双精度浮点型
long double;//这个我忘了
布尔类型:_Bool
这个类型有点特殊:它用来表示真和假,在C语言中 0 表示假,非零表示真。想要使用布尔类型需要包含头文件 <stdbool.h>, 而布尔类型的取值是:true真 或者 false假。具体怎么用我也不是很了解。
sizeof操作符:
sizeiof是一个关键字,专门用来计算操作符的类型的长度,单位是字节。各种数据类型都是有长度的。
实例:
printf("%zd", sizeof(char));
printf("%zd", sizeof(int));
printf("%zd", sizeof(long int));
printf("%zd", sizeof(short int));
printf("%zd", sizeof(_Bool));
printf("%zd", sizeof(float));
printf("%zd", sizeof(double));
printf("%zd", sizeof(long));
printf("%zd", sizeof(long long));
printf("%zd", sizeof(long double));
运行结果:
数据类型我所学习到的就这些了如果有别的欢迎大家补充。
变量
变量顾名思义就是可以变化的量,说到变量还有常量,常量就是不能变化的量。
变量的创建:
int i ;//整型变量
char cv ;//字符变量
double wide ; //浮点型变量
变量的初始化:就是给变量一个值。
int i = 0;//整型变量
char cv = ‘d’;//字符变量
double wide = 9.0; //浮点型变量
变量的分类:变量分为全局变量和局部变量。全局变量就是作用于全局,局部变量的话作用于局部。
int a = 1;//全局变量作用于整个程序
int main()
{
int i = 1;//局部变量作用于大括号内
return 0;
}
简而言之就说在大括号外面的变量是全局变量,在大括号里面的就是局部变量。那问题来了有如果出现这种情况呢?
int i = 199;//全局变量作用于整个程序
int main()
{
int i = 1;//局部变量作用于大括号内
printf("%d",i);
return 0;
}
输出的结果是:1 因为局部的变量优先与全局变量。
算数操作符:“+,-,*,/,%”
“+”就加法,“-”就是减法,“*”就是乘法,“/”就是除法,“%”是取模的意思我理解的意思就是取余的意思。举个例子:
int main()
{
float i = 9.0;//局部变量作用于大括号内
int a = 9;
printf("%d\n", a % 2);//输出结果是数字 1
int b = a / 2;
printf("%d\n", b);//输出结果是一个整数 4
//如果想显示小数也很简单改变数据类型
float x = i / 2;
printf("%f\n", x);//输出结果是4.500000
return 0;
}
还有一个小的知识点:负数求模的规则,结果的正负号由第一个运算数决定。很简单我就不多少说了
赋值操作符:“=”和复合赋值
“=”就是赋值的意思有什么用呢?用标准且专业的话术来说就是在一个变量创建的时候给一个初始值叫做初始化,创建好之后再给一个值,这就是赋值。
int i = 0;//这是初始化
i = 100;//这是赋值
连续赋值:
int a = 1;
int b = 3;
int c = 7;
a = b * 2 + c;
复合赋值:“+=”,“-=”,“/=”,“%=”
int a = 0;
a = a * 3;
a = a + 100;
a += 3;//意思就是a加3然后再赋值给a
a -= 4;//a减4然后赋值给a
a /= 5;//以此类推
a %= 9;
单双目操作符:“++”,“--”,“+”,“-”
单目操作符的意思是只有一个操作数,双目操作符就是有两个操作数。
++和--
++的意思是自增的操作符,它又分为前置++和后置++,-- 操作符同理。
前置++的意思就是先加后赋值,后置++的意思就是先赋值后加。我的理解就是前置++的意思就是先加1,后使用。后置++的意思就是先使用后加1。“--”的话同理。
//后置++
int a = 1;
int b = a++;
printf("a=%d b=%d", a, b);//输出的答案是:a=2 b=1
//前置++
int c = 0;
int d = ++c;
printf("c=%d d=%d", c, d);//输出的答案是:c=1 d=1
+和-
就是正负号的意思,一般来说+号是直接省略的,负号的就是为负的意思举例:
int i = +4;//加不加根本不影响
int c = -2;
int a = -(-2);//负负得正没有为什么数学数学
今天写了好多,没想到自己能写那么多,挺意外的没想到自己有这能耐嘿嘿嘿!下次写少点。
有什么写的不好的地方请各位大佬多多指教,主打一个听劝。