有关于数据类型的小例子

这里只是自己平时学习做的一些笔记,便于以后的查看。
大家先思考一下:

1、数据类型的本质思考
    1)思考数据类型和内存有关系吗?
    2)C/C++为什么会引入数据类型?

2、其实,数据类型的本质:
    1)数据类型可以理解为创建变量的模具;是固定内存大小的别名。
    2)数据类型的作用:编译器预算对象(变量)分配的内存大小。
    3)程序举例,如何求数据类型的大小sizeofint *)
    4)数据类型可以有别名吗?数据类型可以自定义吗?

// datatype.cpp : 定义控制台应用程序的入口点。

//数据类型的用途
//数据类型的本质:固定大小内存块的别名
//重点:b和&b数组数据类型(定义一个1、数组类型 2、数组指针 3、数组类型和数组指针类型的关系
基本上是压死初学者的三座大山)


#include "stdafx.h"
#include "stdlib.h"
#include "stdio.h"
#include "string.h"


*************************************************************
void main1()
{
    int a;      //告诉编译器分配4个字节的内存
    int b[10];  //告诉编译器分配40个字节的内存

    printf(" b:%d\n b+1:%d\n &b:%d\n &b+1:%d\n", b, b+1, &b, &b+1);
    printf("sizeof(a):%d\n",sizeof(a));//4
    printf("sizeof(b):%d\n",sizeof(b));//40

    system("pause");
}
打印结果!
![这里写图片描述](https://img-blog.csdn.net/20151012200411989)


从打印结果来分析,b和b+1差的结果为4,而&b和&b+1差的结果则为40,其实原因是因为b和&b所代表的数据类型是不一样的
这里:
//b代表的是数组首元素的地址
//&b代表的则是整个数组的地址
***********************************************************

//数组类型能够取别名吗
//C++编译器对struct进行增强,其实在.cpp文件也可以,而在.c文件中不可以,希望下面注意


struct Teacher
{
    char name[64];
    int age;
}Teacher ;

typedef struct Teacher2
{
    char name[64];
    int age;
}Teacher2 ;

//数据别名typedef

typedef int u32;

void main()
{
    int a;      //告诉编译器分配4个字节的内存
    int b[10];  //告诉编译器分配40个字节的内存

    struct Teacher t1;
    //Teacher t1;//error C语言中是不认识的,但是.cpp是可以的
    Teacher2 t2;//这样没问题
    t1.age = 31;

    printf("u32:%d\n,sizeof(u32)");//也是四个字节

    system("pause");
}
**************************************************************
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值