在c语言中没有对一个变量赋值它的值是否自动赋0
它的值是否会自动赋值为0,取决于变量的类型。
不会,C语言不会对局部变量进行自动初始化,未设定初值的局部变量,数值为随机值。C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发,C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。
没有加static,默认为auto 型,此时,不给初值,变量的初值是随机的。如果加了static不给初值,变量的初值是默认的 0。不能说不赋初值就不行,对于局部变量,不赋初值的话,其实里面存的是一个随机的值,谁也不知道是多少。
k, m, n);return 0;} 输出结果为:k = 0, m = 0, n = 0;当变量用static修饰,但是没有赋初始值的时候,编译器会自动给它赋值为0.但是如果不用static 只是 int n;这样定义的话,这个值就是未知的,因为编译器会给这个变量分配一块4字节的地址空间,这个地址里面的值就是n的值。
因为 你的结构变量是局部量,不是全局量,没有初始化,也没有赋过值,所以它的值是随机的。如果你把变量声明挪到 main()以前,处理成全局量,则在运行开始时,会自动初始化,清零。或者仍作为局部量,自己初始化清零也可以。
C语言定义一个整型二维数组,若没有赋值,系统自动给的是0吗??
在C语言中,“初始化”和“赋值”是两个不同的概念。楼主问题中应该是“初始化”而非“赋值”。int a = 0; 在声明一个变量的时候指定变量的值,这叫做初始化;int a; a = 2; 这叫做赋值。auto变量处于运行时堆栈。
C语言中二维数组的定义、初始化和赋值:二维数组的定义 定义方式:dataType arrayName[length1][length2]; 其中,dataType代表数据类型,arrayName代表数组名,length1代表第一维下标的长度,length2代表第二维下标的长度。
利用给数组赋值时未赋值部分C系统自动赋值为0是一种方法。还可以利用memset()函数, 它可以一字节一字节地把整个数组设置为一个指定的值。
length1代表行数,length2代表列数。在二维数组中定位一个元素,需要同时指定行和列。
c语言为什么整型变量未赋值是随机值,而二维数组未赋值是0
1、在C语言中,“初始化”和“赋值”是两个不同的概念。楼主问题中应该是“初始化”而非“赋值”。int a = 0; 在声明一个变量的时候指定变量的值,这叫做初始化;int a; a = 2; 这叫做赋值。auto变量处于运行时堆栈。
2、例如,int a[10]; 表示定义了一个长度为10的整型数组。不能自动补0:如果未对数组元素进行初始化,它们的值是未定义的,可能是随机值(垃圾值)。这与C++中的某些情况不同,C++中的局部静态数组未初始化时可能会被自动赋值为0,但C语言中没有这样的规定。
3、C语言中二维数组的定义、初始化和赋值:二维数组的定义 定义方式:dataType arrayName[length1][length2]; 其中,dataType代表数据类型,arrayName代表数组名,length1代表第一维下标的长度,length2代表第二维下标的长度。