auto变量

未在定义语句中赋初值的auto变量和static变量的初值都是随机值。请问这句话错在哪里?

static在VS2010是0
北有云溪2023-06-09 08:24:396

关于c语言auto变量和static变量区别

一、主体不同1、auto变量:是一个C/C++语言存储类型,仅在语句块内部使用。2、static变量:在计算机编程领域指在程序执行前系统就为之静态分配存储空间的一类变量。二、作用域范围不同1、auto变量:初始化可为任何表达式,其特点是当执行流程进入该语句块的时候初始化可为任何表达式。2、static变量:针对某一源文件的以static声明的文件级变量与函数的作用域只限于文件内(只在文件内可见),也即“内部连接”,因而可以用来限定变量的作用域。三、特点不同1、auto变量:具有自动存储期的变量在进入声明该变量的程序块时被建立,它在该程序块活动时存在,退出该程序块时撤销。2、static变量:在函数内以static声明的变量虽然与自动局部变量的作用域相同,但存储空间是以静态分配而非默认的自动分配方式获取的,因而存储空间所在区域不同。参考资料来源:百度百科-静态变量参考资料来源:百度百科-auto
善士六合2023-06-09 08:24:381

未在定义语句中赋初值的auto变量和static变量的初值都是随机值?应该是怎么样的?谢谢

C语言标准里面,auto和static变量的初始值都没有做要求。auto一般肯定是随机的,他分到那块内存原来是什么,还是什么。static由于是静态的,一般加载的时候都初始化为0(大部分系统是这样的,并不绝对),如果是考试题,可以认为是随机的吧
墨然殇2023-06-09 08:24:371

为什么不能用一个内部auto变量去初始化static指针?

因为内部auto变量所对应的存储单元随函数的调用而存在,随函数的执行完毕而回收,而静态指针却长期占用内存,不随函数的调用或执行结束而释放,当再次进入函数后该指针又成为可见的.因此,用内部auto变量的地址去初始化一个静态指针是没有意义的。
铁血嘟嘟2023-06-09 08:24:351

为什么不能用auto变量的地址去初始化static型指针

因为Static是在编译时进行初始化的,而Auto是在运行时初始化的,在编译时,Auto变量还不存在呢,当然也就没有地址,初始化就不能成功了.
kikcik2023-06-09 08:24:341

c++中auto变量及冒号的用法疑问

c++11新特性,范围for 的使用.
此后故乡只2023-06-09 08:24:332

关于c语言auto变量和static变量区别

auto变量会存储在堆栈里面,每次定义的时候会分配存储区,而在用完释放的时候会收回存储区。初始化的时候,如果你不赋初值,auto变量是不确定的。C默认的就是auto类型。所以一般都不加。比如你inta;那a就是auto类型的。static变量会被存储在静态存储区。你可以理解这个存储区为公共的。static变量声明的时候,如果你不初始化,编译器会自动初始化。而且,你用完了,这个变量的退出值会被保存下来。你的例子定义的有问题,可能看不出来,你staticeint ia;就行,别赋初值,你会发现连续运行两次的输出结果不一样,因为第一次运行的值被保存下来了。static一般更主要的是和全局变量配合使用,或者那些大量的存储元素被经常性使用的,比如常量数组,避免不断地存储分配
铁血嘟嘟2023-06-09 08:24:301

关于c语言auto变量和static变量区别

static变量,每次使用的时候会保留上一次的值,即使重新定义,也不会改变static变量的值。输出结果为 23而auto变量不会,重新定义了,就以重新定义的值为准,输出结果为:22
hi投2023-06-09 08:24:293

关于c语言auto变量和static变量区别

就是
西柚不是西游2023-06-09 08:24:2811

关于c语言auto变量和static变量区别

自动变量(auto变量)和静态变量(static变量)主要有以下几点区别:1、static变量存放在静态存储区,在程序整个运行期间都不释放;而auto变量存放在动态存储区,随着生命周期的结束而立即释放。2、static变量只赋值一次,以后就不用赋值;而auto变量在函数每调用一次都要赋初值。3、如果用户不对static变量赋初值,则默认为0或"";而auto变量为不确定值。扩展资料:auto变量自动变量(Automatic Variable)指的是局部作用域变量,具体来说即是在控制流进入变量作用域时系统自动为其分配存储空间,并在离开作用域时释放空间的一类变量。在许多程序语言中,自动变量与术语“局部变量”(Local Variable)所指的变量实际上是同一种变量,所以通常情况下“自动变量”与“局部变量”是同义的。参考资料来源:百度百科-自动变量
FinCloud2023-06-08 08:03:331

关于c语言auto变量和static变量区别

在这两段程序中,在第一个中,当主函数每次调用AddOne()函数时,所定义的变量ia的初始值都是1;而在第二个中,主函数第一次调用AddOne()函数时,ia=1,当第二次调用时,ia的初始值就是上一次执行AddOne()函数后ia的值了;static是静态变量,其作用域是全局。auto变量,作用域只是当前函数。
铁血嘟嘟2023-06-08 08:03:334