数据结构一(预习)

声明与定义

定义:创建一个对象,并为这个对象分配一块内存命名

 【注意】一个变量或对象在一定的区域内只能被定义一次


声明:两重含义

一、 告诉编译器某个名字已经匹配到一块内存上了。声明可以多次出现

二、告诉编译器某个名字已经被占用了,其他的地方不能再用这个名字来作为变量名或对象名


static 与 extern

static:  指该变量空间独立于函数中的auto变量或者栈变量,static变量空间在内存中的静态区分配。
一、修饰局部变量
         如果用static进行修饰,该变量便存放在静态数据区,其生命周期直持续到整个程序执行结束为止【注意】虽然用static对局部变量进行修饰后,其生命周期和存储空间发生了变化,但是作用域并没有改变 
         在用static修饰局部变量后,该变量只在初次运行时进行初始化工作,且只进行一次。
                                                    
       左边这个程序的执行结果是 2   3                                                 右边这个程序的执行结果是 2  2
       我对这个程序的理解是:只在第一次调用的时候给a初始化1,第二次调用的时候就不进行初始化了,“这也就是  在用static修饰局部变量后,该变量只在初次运行时进行初始化工作,且只进行一次”        当我把static去掉了以后 每次调用fun函数的时候就会对a进行初始化。
二、修饰全局变量
    在定义全局变量时,给变量之前加上static 这个变量就只能在本源文件里使用,也就是说改变了变量的作用域

三、修饰函数    

    用static修饰函数,和修饰全局变量的情况差不多,也是改变了函数的作用域


extern:指当前变量或函数不是在本源文件内声明的,它是外部变量或外部函数

   在任何函数体外声明或定义变量,不加external可能是定义也可能是声明,如果没有初始化则在其中任选一个作为定义其他为声明。在函数体内声明【在函数体内部不能定义外部变量】 使用其他源文件中定义的变量时,必须用extern关键字 ,在函数体内默认为局部变量。

    【注意】在写程序是要注意外部函数的参数类型、参数个数和返回值类型,最好保持一致。


const

    只要在变量前加上const 就表示该变量里的数据不能被修改。 const不仅仅可以用来修饰基本类型,还可以修饰一些构造类型及其参合体(数组、指针、指针数组、结构体数组、结构体指针数组等)

auto

    auto的出现意味着当前变量的作用域为当前函数或代码段的局部变量,意味着当前变量会在内存栈上进行分配
    在这里我对战的操作有点不明白,尤其是图2-8-1那个程序没看明白
 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值