点击链接加入群【C语言】:http://jq.qq.com/?_wv=1027&k=2H9sgjG



在上一篇文章中,我们主要讨论了浮点数的表示方法及存储以及精度损失问题。这篇我们主要介绍一下数据类型


我们讲数据类型主要是让大家理解好内存模型,并不是什么类型重要,什么类型不重要,重要的是理解好内存模型,你一旦掌握了这项技能,C C++ 包括 JAVA .NET 对你来说只需要用几天的时间去看一下基本语法基本上就能用了。我说它重要,但是现在我们不能讲的太深,因为有些东西是C++里的,我们现在只是把C里的知识点给大家分享一下。


数据类型,简单的如 char short int float double ,那么这些类型我们要怎么去用,及它们的意义又是什么呢?


比如,我们现在已经知道int 型数据在内存中的表示方式了,那么我们现在就拿一个例子,来说明它们之间的关系。


我们用数据类型来定义变量,定义变量就是申请内存空间,申请了内存空间我们就可往这块区域里写入数据。我们首先来讨论一下变量四大特性:


1、变量名 一个变量要有名字,对吧


2、变量的值 变量得有值,不管你有没有给他赋值,他都有值,在C里int val; printf val 的值 ,系统也会给出一个数据。


3、变量的类型  变量得有类型,如int short 等,很好理解吧


4、变量的首地址  定义变量就是申请内存空间,那么比如int 申请四个,我们把最小的地址叫做变量的首地址


好,就是这四大属性,我们要记住它们。因为变量的类型很广,如 int,short,结构,各种指针 ,这些都是类型,现在记住就好。


好,今天的内容讨论完了。


啊!你不会开玩笑呢吧,这么点就讲完了?。。。呵呵 。。真的讲完了。


唉,忽然想起来一件事,指针,这可是个好东西,那么指针是什么呢?


指针是变量,那么它是干什么的变量呢? 举个例子,int类型的变量可以存放整数,char型的可以存放字符, float 类型的变量可以存放浮点数,那么指针存储什么呢? 好,注意,现在讲的东西是重点,重点中的重点,指针是用来存放 地址的。“地址”? 什么东东来?想不起来了,回去看01篇吧,


比如我们定义一个 int val =13; 那么它在内存中 占四个字节, 起始位置是 0X0012FF7C,那么我们就可以定义一个 int * p = 0X0012FF7C,明白它是干什么用的了吧,就是记录这东西用的呀。那么指针本身也是变量,它也需要内存空间来存放自己,我们讲过所有的地址都是32b,也就是4B,所以所有的指针(不管什么类型)变量都占4B,我举一个例子吧,请看图


C语言入门篇-04_C语言学习


能看出来什么现象吗,我要强调一下,我们许多人喜欢把*p 看成一体,其实最好不要这样子来读,应该这样子看 (int *) p ; 是 int * 类型的变量p,你能把这句话看的与 int val; 一样你对指针的理解基本已经到位了,我们只不过是定义了一个 int * 类型的变量p ,能明白了吗。如果我写 short **** p;这又是什么意思呢? 意思 是定义了一个 short **** 类型的变量 p ,我想你应该明白了,指针其实就是一类类型,我们今天要讲的内容真的讲完了,这一讲就是要大家明白一个事情,你定义一个指针变量,与你定义一个整型变量其实是一回事,只是它们的类型不一样而以,也就是它们存储的值不一样,整型变量存整数,指针变量存地址。你只要弄懂这个,这一讲就OK了,更多的东西,我们会慢慢 深入。


char c;


short s;


int i;


unsigned int ui;


char * pc;


int ** pi;


你要把这些东西都看成是一个东西,那就是定义变量,申请空间。


好了,88!