2018.9.11第二十二次笔记

c语言进阶学习笔记1—数据类型

一.
回顾下:之前我们的笔中记录了数据类型分为两大类:1.基本数据类型,2.复合数据类型。
1.基本数据类型主要有:int float char double
2.复合数据类型主要有:数组,结构体,共用体
我们知道当我们定义一个变量的时候,都是要给这个变量一个数据类型的,用来限定这个变量的变化范围。比如说int a,定义的这个变量被存储在内存中,不同种类的变量类型所占用的内存空间是不一样的。也就是说一个变量占用多少空间是由变量的数据类型决定的。
不同的数据类型在不同的CPU中所占的内存是不一样的。我们不能一概而论,比如说,我们说的int,占4字节,32位,就是在32位的CPU中说的。
在编辑器中,我们可以使用sizeof运算符来计算出不同类型的所占的空间大小。
显示结果如下:

#include<stdio.h>
int main()
{
    int a ;
    short b;
    char c;
    long d;
    float e;
    double f;

    printf("a = %d.\n",sizeof(a));
    printf("b = %d.\n",sizeof(b));
    printf("c = %d.\n",sizeof(c));
    printf("d = %d.\n",sizeof(d));
    printf("e = %d.\n",sizeof(e));
    printf("f = %d.\n",sizeof(f));

    return 0;

 } 

显示结果如下:
这里写图片描述

二.
回顾下:有符号与无符号数是对于整形数来说的,也就是char short long int都具有有符号数和无符号数。
而float double只有有符号数,没有无符号数
数的存储是以二进制的方式存储在内存中一个个格子中的。对于有符号数和无符号数的存储方式是不一样的,这点很重要。这就表示如果我们以整形int存进去,以float取出来就不对了。因为存进去按照int存储方式,而取出来按照float取出方式。
对于int来说,无符号数uint,32位全部用来存储数字的内容,所以可以存的数据范围就是0—2^32-1(10位),而有符号数,最高位规定存储的是符号,所以实际存储数只有31位,因此范围为-2^31—2^31-1。
所以无符号数的范围比有符号数的范围大!
举个例子:

#include<stdio.h>
int main()
{
    int a = 5 ;

    printf("a = %d  a = %f.\n",a,a);

    return 0;

 } 

这里写图片描述
我定义int,也就是输入一个int型变量,输出两个类型的,一个是匹配类型的int,一个是不匹配的float,结果显而易见。

三.
原来写代码总是用void,这个void是什么?
我们总是称这个void为空,就是不用写,这种说法不对,这里的空实际上是类型未知,哪种类型都有可能,只是我现在不知道罢了。
void *是空指针,所指向的那个变量类型为空,编译器不需要帮我检查了,我自己知道这样写没错。
在函数的参数列表中void的含义是调用这个函数时不需要给他传参了。
在返回值return中是void说明这个函数不会返回一个有意义的返回值,所以调用者也不用想着去使用该返回值。

四.
不同类型的变量是不能进行运算的。
数据类型转换有两种方式:1.隐式转换,2.强制类型转换
1.隐式转换:默认朝着精度更高,范围更大的方向转换。
2.强制转换:程序员想这么做,计算机管不了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值