zoukankan      html  css  js  c++  java
  • C语言中数据类型和变量

    C语言中的数据类型

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

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

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

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

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

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

    数据类型的封转

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

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

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

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

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

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

    数据类型的思考

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

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

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

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

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

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

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

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

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

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

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

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

  • 相关阅读:
    一次router拦截器的应用
    node中的koa2
    node中从express到koa再到koa2的发展历程
    node中的crypto内置模块
    node中的http内置模块
    node中的stream(流)内置模块
    node中fs内置模块
    node 中的global对象和process对象
    CSS命名规范
    作品展示
  • 原文地址:https://www.cnblogs.com/andyniu/p/7629460.html
Copyright © 2011-2022 走看看