【C语言笔记4】C语言数据类型和变量2(字符型、整型、浮点型、布尔类型、sizeof、signed与unsigned、变量、单目操作符、强制类型转换)


所有运行结果均在编译器VS2022,Debug,x86的环境下得出

一、数据类型介绍

1.总览

数据类型总览

2.布尔类型

在C99中引入了布尔类型,专门表示真假
并且,在C语言中,整数0表示假,非0表示真

1 _Bool

布尔类型的使⽤得包含头⽂件 <stdbool.h>
布尔类型变量的取值是:true或者false.

3.用sizeof计算各类型的长度

3.1 sizeof简介

  • sizeof是一个关键字,也是操作符,计算后的长度单位是字节
  • sizeof 的操作数如果不是类型,是表达式的时候,可以省略掉后边的括号的。
  • sizeof 后边的表达式是不真实参与运算的,根据表达式的类型来得出⼤⼩。
  • sizeof 的计算结果是 size_t 类型的。
  • sizeof( 类型 )
  • sizeof 表达式

3.2 sizeof的使用示例

3.2.1 类型
# include <stdio.h>
int main()
{
	printf("%zd\n", sizeof(char));
	printf("%zd\n", sizeof(_Bool));
	printf("%zd\n", sizeof(short));
	printf("%zd\n", sizeof(int));
	printf("%zd\n", sizeof(long));
	printf("%zd\n", sizeof(long long));
	printf("%zd\n", sizeof(float));
	printf("%zd\n", sizeof(double));
	printf("%zd\n", sizeof(long double));
	return 0;
}

sizeof与类型

3.2.2其他
#include <stdio.h>
int main()
{
	//int a = 10;
	//printf("%zd\n", sizeof a);
	//printf("%zd\n", sizeof(a));
	//printf("%zd\n", sizeof(int));
	printf("%zd\n", sizeof(3.14));//double
	printf("%zd\n", sizeof(3.14f));//float
	return 0;
}

sizeof与其他

3.3 sizeof中的表达式不计算

#include <stdio.h>
int main()
{
    short s = 2;//s是占2个字节
    int b = 10;
    printf("%zd\n", sizeof s);
    printf("%zd\n", sizeof(s = b + 1));
    //sizeof的表达式不计算
    printf("s = %d\n", s);
    return 0;
}

sizeof中的表达式不计算

二、signed和unsigned

  • signed 关键字,表⽰⼀个类型带有正负号,包含负值;
  • unsigned 关键字,表⽰该类型不带有正负号,只能表⽰零和正整数
  • 对于 int 类型,默认是带有正负号的,也就是说 int 等同于 signed int
  • 整数变量声明为 unsigned 的好处是,同样⻓度的内存能够表⽰的最⼤整数值,增⼤了⼀倍
  • char 不等同于 signed char ,它有可能是 signed char ,也有可能是 unsigned char 。

三、变量

  • 分为全局变量和局部变量
  • 全局变量:在⼤括号外部定义的变量就是全局变量
  • 局部变量:在⼤括号内部定义的变量就是局部变量
  • 其实当局部变量和全局变量同名的时候,局部变量优先使⽤。

四、单目操作符

4.1 ++、–

4.1.1前置

先加(减)1,后使用
例如:

  • int a = 10;
  • int b = ++a;//++的操作数是a,是放在a的前⾯的,就是前置++
  • printf(“a=%d b=%d\n”,a , b);

它就等于:

  • int a = 10;
  • a = a+1;
  • b = a;
  • printf(“a=%d b=%d\n”,a , b);

4.1.2后置

先使⽤,后加(减)1
例如:

  • int a = 10;
  • int b = a++;//++的操作数是a,是放在a的后⾯的,就是后置++
  • printf(“a=%d b=%d\n”,a , b);

它就等于:

  • int a = 10;
  • int b = a;
  • a = a+1;
  • printf(“a=%d b=%d\n”,a , b);

4.2 +、-

  • 运算符 + 对正负值没有影响,是⼀个完全可以省略的运算符,但是写了也不会报错。
  • 运算符 - ⽤来改变⼀个值的正负号,负数的前⾯加上 - 就会得到正数,正数的前⾯加上 - 会得到负数。

五、强制类型转换

  • int a = (int)3.14;
  • 24
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邹小白_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值