c语言自学第二章 变量,计算机的存储规则,数据类型。

变量是存储数据的小盒子,不是里面的数据

变量的定义格式
//数据类型 变量名;
  int a ;
​
// 练习
// 练习1:两个数相加
# include <stdio.h>
int main()
{
    int a = 10;
    int b = 20;
    int c = a + b;
    printf("a和b的和是%d\n", a + b);
    
    
    // 练习2 用一个变量去表示微信的余额
    // 需求 一开始微信的余额 为100元收到了 一个二元的红包
    // 经常发生改变的数据 我们可以用变量来表示
    int money = 100;
    money = money+ 2;
    printf("%d", money);
}
变量的注意事项
  1. 变量里只能存在一个值

  2. 变量名不允许重复定义

  3. 一条语句可以定义多个变量

  4. 变量在使用之前一定要进行赋值变量如果用到了,一定要赋值才可以

  5. 变量的作用域范围

// 示例
#include <stdio.h>
int main()
{
    
    // 1.变量中只能存一个值
    int a = 10;
    printf("%d\n", a);
    a = 20;
    printf("%d\n", a);
​
    // 2.变量名不允许重复
    int a = 20;
    printf("%d", a);
​
    // 3.一条语句可以定义多个变量(了解) 不方便阅读
    int b = 10, c = 20;
    printf("%d\n%d\n", b, c);
​
    // 4.变量在使用之前一定要赋值
    int e;
    printf("%d", e);
​
    // 5.变量的作用范围 先不讲
​
    return 0; 
}

计算机的存储规则

在计算机中,计算机中任意数据都是以二进制的形式来存储的

数据类型的作用

8bit = 1个字节

int 通常占用4个字节 也就是 32个bit

数据类型
整数
  • 从小到大的

  • int是整数的默认数据类型

  • 不同的数据类型所表示范围和内存大小都是不一样的,由编译器来决定的,可以用size of来确定

  1. short

  2. int

  3. long

  4. long long(C99)

整数案例
#include <stdio.h>
int main() 
{
    // 1.定义short、int、long、long long四种数据类型的变量
    // 格式:数据类型 变量名 = 数据值;
​
​
    // short 短整型 windows 2个字节 (-2768~32767)
    // 如果超出数据范围那么它的数据就会出错
    // short 完整形态 short int a = 10; 表示是一个短整型 但是我们一般省略不写
    short a = 10;
    printf("%d\n", a);
​
    // int 整数 windows 4个字节 (-2147483648 ~ 2147483647)
    int b = 100;
    printf("%d\n", b);
​
    // long 长整型 windows 4个字节 (-2147483648 ~ 2147483647) 给long赋值一般要在最后加一个L大小写都可以但是我们一般都写大写的
    // linux 32位 6个字节 64位 8个字节
    long c = 1000L;
    // printf("%ld\n",c); 为什么要加 l 呢 因为加l才能证明它是一个长整型的数据
    printf("%ld\n", c);
​
​
    // long long(c99) 超长整形 windows 8个字节 (19位数)
    // 打印的时候和数据后面要加两个 L
    long long d = 10000LL;
    printf("%lld\n",d);
​
// 2.利用sizeof测量每一种数据类型占用多少字节;
    // zu 表示的就是我打印出来的sizeof的结果
    // printf("%zu\n",sizeof(a)); sizeof()小括号里面可以写 数据类型 也可以直接写变量的名字
    // short 
    printf("%zu\n", sizeof(short));
    printf("%zu\n",sizeof(a));
    // int
    printf("%zu\n", sizeof(int));
    printf("%zu\n", sizeof(b));
​
    // long 不管是32的windows还是64的windows 都是占用四个字节的
    printf("%zu\n", sizeof(long));
    printf("%zu\n", sizeof(c));
​
    // long long 占用八个字节
    printf("%zu\n", sizeof(long long));
    printf("%zu\n", sizeof(d));
​
​
    return 0;
}
整数扩展
  1. 用完整形态写出来的跟不写的结果是一样的 写完整形态的时候 除int外 其他的完整形态 都可以在数据类型后面加 int

    如下

    #include <stdio.h>
    int main()
    {
        // 此为演示的 short
        short int a = 10;
        printf("%d",a);
        return 0;
    }

  2. 有符号整数和无符号整数的定义情况 在定义变量的时候默认是有符号的

    1. signed 有符号整数 正数负数

      示例

      // 默认的情况下 可以省略不写
      signed int e = 100;
      printf("%d\n", e);

    2. unsigned 无符号整数 只有正数

      示例

      // 定义一个变量表示序号(了解)
      // short:-32768~32767
      // 无符号的short 取值范围就是 unsigned short:0~65535
      unsigned short num1 = 65535;
      printf("%u\n", num1);
      ​
      // 如果给它一个负数 那么它的数据就会出问题
      // 切记 打印的时候 不是%d 而是 %u
      unsigned int f = 200;
      printf("%u\n", f);

小数(后面的精度不用怎么纠结)
  1. 掌握如何定义两种类型的变量

  2. float(占用4个内存)

    1. float 单精度小数 精确小数点后6位 占用四个字节 最好在后面加一个f大小写都行

      float a = 0.1F;
      printf("%f\n", a);
      // 如果想保留两位小数的话 可以这么写 .2就表示保留两位
      printf("%.2f\n",a);

  3. double(占用八个内存)

    1. double 双精度小数(精确小数点后15位) windows占8个字节(38位) 使用占位符 double 使用 %lf 会自动四舍五入(包括0.5)

        double b = 1.78;
          printf("%.2lf\n", b);

  4. long double(了解即可)

    1. long double 高精度小数 (精确小数点后18~19位)windows占8个字节 其他(12,15) 编辑器决定

       long double c = 3.1415926535L;
          printf("%.2lf\n", c);
      

  5. sizeof 测量字节示例

    printf("%zu\n", sizeof(a));
    printf("%zu\n", sizeof(b));
    printf("%zu\n", sizeof(c));

  6. 小数的数据类型无法跟unsigned使用

  7. 小数的取值范围比整数要大

  8. C语言中的小数默认是double类型的

  9. 不可以与unsigned组合,unsigned只能和整数类型组合

字符
  1. char 占用1个内存

    取值范围:ascll码表中的字母,数字,英文符号

  2. 示例

#include <stdio.h>
int main() 
{
	// 1.定义 char 数据类型的变量
	// char字符 取值范围 ascii码表中所有的内容 windows1个字节

	char c1 = 'c';
	printf("%c\n", c1);

	char c2 = '1';
	printf("%c\n", c2);

	char c3 = 'A';
	printf("%c\n", c3);

	char c4 = '你';// 如果输入中文就会报错 那是因为只能输入 ASCII表中的数据
	printf("%c\n", c4);


	/*char c[] = "你好啊";
	printf("%s\n", c);
	printf("%zu\n", sizeof(c));
	*/

	// 2.利用size测试占用多少字节
	// 可以看到占用的都是一个字节
	printf("%zu\n", sizeof(c1));
	printf("%zu\n", sizeof(c2));
	printf("%zu\n", sizeof(c3));
	printf("%zu\n", sizeof(c4));
	
	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值