你看,数组可以给指针赋值,指针之间也可以相互赋值,但是数组就是不能象指针一样相互赋值。我叔,你说了半天,我越听越郁闷,难怪都说C语言难学,我看不是C语言难学,而是设计的一点都不合理,哼!我哈哈大笑道,C语言设计之初,就没有考虑是否容易学习。汤普森当初是先写了一款游戏给自己玩的,但是游戏开发好...
变量只要声明了就存在,则有值。赋值只是改变它的值。所以此处 int a[10]; 这一行代码【声明】了变量...
而C语言里,数组只是一块具有类型和长度的内存,没有提供如此复杂的功能 从逻辑上讲,可以将数组的赋值的含义变成向数组的元素赋值。但这样就会使得以简单为原则的C语言变得异常复杂:如果a的长度比b的长度大,那么只更新b的长度,剩下的保持原样;如果b的长度比a的长度大,那么就只更新a的长度。这个...
0并不代表没有值,只是值恰好是0而已。
普通数组没有赋初值,默认的数组元素值是随机数,不是0。如果在定义数组时,数据类型前面加上关键字static,数组变成了静态数组;或者把数组定义在函数的外面,成为全局变量数组,这时数组元素的值自动赋值为0。例子:includeint main(void){ int m = 0;static int n;int a = 5, b = 6, c = ...
C语言规定,普通数组没有赋初值,默认的数组元素值是随机数,不是0。如果在定义数组时,数据类型前面加上关键字static,数组变成了静态数组;或者把数组定义在函数的外面,成为全局变量数组,这时数组元素的值自动赋值为0。
数组未初始化有两种情况:1,未初始化,其值有两种可能:一种是全局数组,被编译器初始化为0。一种是局部数组,为随机数。2, 已初始化,局部数组和全局数组,已初始化,未赋值的数组都会被赋值为0。
在C/C++中,普通数组只是分配在连续地址上的一段相同类型的变量组成的,而不是一个变量。像a[n]并不是一个变量,而是通过指向第一个值的指针来操作 的。数组和指针有着很密切的联系。可以认为数组操作是指针操作的另一种写法。因此像数组整体赋值这类操作是没有意义的,因为它们不是一个整体。
这里说的“能”与“不能”是指用C语言的语句操作。C没有提供对数组整体赋值的语句,所以肯定是不能对数组进行整体赋值的。严格说,“除了在定义数组时……”的说法也欠妥,因为C代码中的变量定义语句其实也不属于C,而是C的编译器语句——就是说那些定义语句并不生成机器代码,只是在编译时不一下。...
如果你使用的是VC,那么在debug下非静态变量的初始值不会是0.一般地:int a[5]; // 不建议使用,可能初始值为0,也可能不是 int a[5] = {0}; // 全部初始化为0 或者int a[5] = {0};memset(a, 0, sizeof(int)*5);