C语言中的数据类型

数据类型的本质,固定大小内存块的别名。

数组名代表数组首元素的地址。

数组首元素的地址,&代表整个数组的地址。

数组数据类型,怎么定义数据数组类型,定义数组类型指针,数组类型和数组指针类型的关系,很重要的。

可以使用sizeof求数据类型的大小。sizeof测量变量的大小在编译期就已经完成。

可以通过typedef自定义数据类型。

数据类型的封转

1、void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何数据类型的指针。

2、void修饰的函数返回值和参数,表示是无,如果函数没有返回值,应该将函数声明为void类型,如果函数没有参数,应该将函数括号中用void来明确表示。

3、void指针的含义,C语言规定,只有同种类型的指针才能进行赋值,void* 作为左值的时候,可以接收任何类型的指针,void* 作为右值的时候,需要进行强制类型转换。

4、不存在void类型的变量,在C语言中,没有定义void应该分配多大的内存。

变量的三要素,名称,大小,作用域

函数的三要素,名称,参数,返回值

数据类型的思考

如何表达数组的数据类型?

函数可以看作是一种数据类型? 函数也是一种数据类型,是一种特殊的数据类型。

变量的本质,是既能读又能写的内存对象,若初始化之后不能修改的量称之为常量。

变量的本质是一段连续内存空间的别名,是一个门牌号,通过变量来操作内存,对内存可读可写,通过变量往内存中读写数据。那么变量跑哪里去了?变量在代码区中。

程序通过变量名来操作变量直行的内存空间。

通过变量修改内存的方法有两中,一种是直接进行修改内存,另外一种是间接修改内存。

如果想要间接修改内存中的值,应该那到这个内存的地址,然后强制转换成为对应类型的指针的地址,然后在通过*来操作这块内存。

也就是说,内存是有地址编号的,拿到了这个地址编号就可以修改内存中的数据了。

内存空间可以多取几个别名,C++引用就是干这个事情的。

也就是说,对类型可以区别名,通过typedef,对内存空间也可以取别名,就是C++中的引用。

变量的生命周期,涉及到内存四区模型和函数调用模型。

*就像一把钥匙,拿着这个钥匙找到对应的内存空间,修改或者是得到内存空间中的值。

C语言中数据类型和变量的更多相关文章

  1. C语言中数据类型的取值范围

    C语言中数据类型的取值范围如下:char -128 ~ +127 (1 Byte)short -32767 ~ + 32768 (2 Bytes)unsigned short 0 ~ 65536 (2 ...

  2. C语言中数据类型的本质

    数据类型可以理解为固定内存大小的别名.比如int类型,就是表示占用4字节的内存. 1 数据类型的大小 用sizeof操作符获得数据类型的大小. 比如 int a[5];   sizeof(a)就可以得 ...

  3. C语言中数据类型取值范围的计算的理解与总结

    c语言中,数据类型有short,int,long,char,float,double,然后除了浮点型只有 有符号数(signed)外,其他的数据类型都分为有符号(signed)和无符号(unsigne ...

  4. 从头开始-03.C语言中数据类型

    基本数据类型 整形: Int 4字节 %d / %i Short 2字节 %hd Long 8字节 %ld Longlong 8字节 %lld Unsigned 4字节 % 浮点型 单精度 Float ...

  5. C语言中的特殊变量

    auto: 函数中的局部变量,动态地分配存储空间,数据存储在动态存储区中,在调用该函数时系统会给它们分配存储空间,在函数调用结束时就自动释放这些存储空间. register: 为了提高效率,C语言允许 ...

  6. C语言中结构体变量之间赋值

    近期,我阅读了某新员工小刘写的C语言代码,发现其对结构体变量之间的赋值不是非常熟悉. 对于两个同样类型的结构体变量,他均採用的是逐个成员变量直接赋值的形式.例如以下的代码演示样例: 如上代码所看到的, ...

  7. c语言中的数据变量类型,大小

    C中有哪些数据类型? 回答: 有两种类型的数据类型,用户定义和预定义.预定义的数据类型是int,char,float,double等,用户使用标签struct,union或enum创建用户定义的数据类 ...

  8. 16.C语言中数据类型的本质含义是:表示一个内存格子的长度和解析方法。

    数据类型决定长度的含义:我们一个内存地址(0x30000000),本来这个地址只代表1个字节的长度,但是实际上我们可以通过给他一个类型(int),让他有了长度(4),这样这个代表内存地址的数字(0x3 ...

  9. C语言与java语言中数据类型的差别总结

    在学习java的时候,看到char ch =  '男' ; 我就觉得很奇怪,char类型不是占用一个字节吗?为什么定义成一个汉字被说成是一个字符了? 原来,在C语言中,char在32位操作系统下占用1 ...

随机推荐

  1. Linux内核中链表的学习

    一.自己学习链表 数组的缺点:(1)数据类型一致:(2)数组的长度事先定好,不能灵活更改. 从而引入了链表来解决数组的这些缺点:(1)结构体解决多数据类型(2)链表的组合使得链表的长度可以灵活设置. ...

  2. JavaScript中的ajax(二)

    一.Ajax概念Ajax是(Asynchronous JavaScript And XML)是异步的JavaScript和xml.也就是异步请求更新技术.Ajax是一种对现有技术的一种新的应用,不是一 ...

  3. 在C#中怎样推断线程当前所处的状态

    在C#中怎样推断线程当前所处的状态 老帅       在C#中.线程对象Thread使用ThreadState属性指示线程状态.它是带Flags特性的枚举类型对象.    ThreadState 为线 ...

  4. 【Sprint3冲刺之前】TD学生助手测试用例

    项目名称 TDzhushou 项目承担部门 骐骥之队 完成日期 2014/5/29 历史版本: 版本/状态 作者 参与者 起止日期 备注 TDzhushou1.1 解凤娇 骐骥之队 5/3-5/7 2 ...

  5. android 获取手机设备品牌

    在有些数据要获取手机设备是什么品牌,特别做一些适配的时候,好了就讲下怎样或者手机是什么品牌: String brand =android.os.Build.BRAND; 就这么简单!

  6. 你要的最后一个字符就在下面这个字符串里,这个字符是下面整个字符串中第一个只出现一次的字符。(比如,串是abaccdeff,那么正确字符就是b了)

    include "stdafx.h" #include<iostream> #include<string> using namespace std; in ...

  7. Linux下实现RAID

    一.实验目的 1.掌握Linux系统下软RAID的实现方法: 2.掌握RAID5的配置过程: 3. 通过实验熟悉RAID.5的特点. 二.实验内容及步骤 1.在VMware中创建一台Linux. 2. ...

  8. CPI和GDP有什么关系

    CPI反映消费价格变化情况,是一个相对数.GDP反映国民经济生产总量,是一个绝对数.CPI的变动反映经济运行过程中物价变动情况,是观察通货膨胀程度的重要指标,GDP的变化则反映经济的增长情况.经济增长 ...

  9. Android NDK开发初步

    在配置好NDK开发之后就能够使用C/C++开发android了.以下以一个HelloWorld项目来说明 1.新建一个Androidproject 新建一个HelloWorldproject 代码例如 ...

  10. iOS-代理托付的使用

    #import "Rigester_ViewController.h" #import "Rigester_ViewController.h" @interfa ...