发布网友 发布时间:2024-01-29 23:18
共2个回答
热心网友 时间:2024-08-14 20:28
在 C 语言中,定义变量时是否给变量赋初值取决于程序员的需求和设计决策。C 语言是一种低级语言,它允许灵活地操作内存,包括不显式地初始化变量。这样的设计允许程序员更好地控制程序的行为和性能。热心网友 时间:2024-08-14 20:25
c语言中定义变量不赋初值默认是多少由编译器决定的!很不安全这种!有的编译器默认值为0 或者null,有的是一个非常大的负值,或者是最小的一个数!一般都会定义的时候初始化下!
没有加static,默认为auto 型,此时,不给初值,变量的初值是随机的。
如果加了static不给初值,变量的初值是默认的 0。
其实不能说不赋初值就不行,对于局部变量,不赋初值的话,其实他里面存的是一个随机的值,谁也不知道他是多少,因此如果没赋初值的情况下就使用它,程序是完全不可控的,如你的图1,直接在while里去判断b了,因此这个while判断是不可控的。
【c语言】
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言订定了一套完整的国际标准语法,称为ANSI C,作为C语言最初的标准。
区分变量的类型,有两种情况。
1 局部变量。
局部变量在没有显式初始化时,其值C语言规范没做要求,可以是随机值,也可以是编译器随意给定的值。
比如g编译器的局部变量就是随机值,可能为任何值。而微软的编译器,如VC或VS,则会初始化为全c,即0xCCCCCCCC。
2 全局变量或静态局部变量。
所有的全局变量,即定义在函数外的变量,默认值为0。
所有的静态局部变量,即定义在函数内部的
static int name;
形式的,默认初始化为0。
全局变量一般初始化为0,局部变量没有规定的默认值,取决于编译器,所以要尽量避免使用只定义没赋值的变量的值
c语言 unsigned char 定义一个变量 初值是多少是随机的,如果你不写,c语言不会主动赋初始值
对于C语言中,变量x赋初值后x是变量还是常量是个变量,因为x的值是可以改变的,如果前面加上const关键字的话就是常量了。
C语言中定义一个变量,不给它赋值。它会有值吗?若有是多少? C标准(ISO/IEC 9899:TC2)6.7.8节:
”If an object that has automatic storage duration is not initialized explicitly, its value is
indeterminate. If an object that has static storage duration is not initialized explicitly,
then:
— if it has pointer type, it is initialized to a null pointer;
— if it has arithmetic type, it is initialized to (positive or unsigned) zero;
— if it is an aggregate, every member is initialized (recursively) aording to these rules;
— if it is a union, the first named member is initialized (recursively) aording to these
rules.“
也就是说,静态变量默认会初始化,值为0;非静态变量默认没有初始化,值未知。事实上,如果使用未初始化的局部变量,编译器一般会给出警告。
局部变量未初始化就是一个随机值,如果声明的int为全局变量会默认初始化为0
c语言 定义变量并赋值 只对x1进行了赋值。
=赋值运算符,逗号起到分割作用,把你要申请的两个变量隔开告诉系统“我申请了两个float类型的变量,它们名字分分别是x0和x1”。至于赋值就各赋各自的了。