int a[10] = {0}; //全部赋初值为0 a[0] = 1; //随便给哪个赋值。return 0;}
include <stdio.h>void main(){int i,j,k=0,a[2][2]={1,2,3,4},b[4];for(i=0;i<2;i++)for(j=0;j<2;j++){b[k]=a[i][j];k++;}for(k=0;k<4;k++)printf("%d ",b[k]);}运行结果:就是将一个2×2的二维数组的值按顺序赋给一个一维数组。
1、按元素赋值:遍历一维数组,并将每个元素赋值到二维数组的对应元素上。或者遍历二维数组,将每个元素赋值为一维数组对应值上。优点为操作灵活,可以按照需要任意赋值。2、当一维数组和二维数组类型相同,而且赋值顺序与一维数组中的存储顺序完全相同时,可以用memcpy的方式,直接一次性赋值。如一维数组为a,...
int a[10]; int *a;是这样子退化的。而对于二维数组,把最高一维退化为指针,因此:int a[10][1...
c语言中为什么一维数组名可以赋值给一个普通的指针,二维数组名却不可以赋值给一个指向指针的指针? 👉 http://t.cn/A65FfSbX 来源:@知乎 #大学生[超话]##大学生##C语言#
char*,但是C编译器偏偏没有警告,C++编译器就会有警告,因为C++的类型检查比C严格。
跟数组没关系,之所以可以用来表示对数组元素的索引,只是对数组名这个特殊的指针常量的解引用而已。数组...
a是数组名,它本质上是int *类型的指针,而普通的指针p如果也是int *类型的话,那么a就可以赋值给p...
类型不同,二维数组名的类型是 int (*)[],二维指针的类型是int **。