C语言中,数组名是一个不可变的指针常量,不能对它进行加、减和赋值运算。在C语言中规定,数组名是代表该数组的首地址且符合标识符书写规定的变量标识符。不能对它进行加、减和赋值运算。整个数组是以首地址开头的一块连续的内存单元。如有字符数组char c[10],设数组c的首地址为2000,也就是说c[...
它们都可以用于访问内存地址,但它们有许多重要区别。 1.类型 数组名表示整个数组本身,是一个不可修改的常量指针,它包含的是数组第一个元素的地址。因此,可以使用数组名来引用整个数组而不是单个元素。指针是一个变量,存储了另一个变量的地址。 2.大小 数组的大小在编译期间就确定了,所以一个数组一旦声明就不能...
可以的 。int a[3] = {1,2,3};int b[3];b = a;错误提示:F:\>gcc test.ctest.c: In function 'main':test.c:8:4: error: incompatible types when assigning to type 'int[3]' from type'int *'
指针接收数组元素的地址,所以没问题。另外我也不太建议你记住数组名是个地址这种不严谨的说法,哪怕他...
数组的元素在内存中是一般都是连续存放的,数组第一个元素的地址是数组的首地址。在C语言中,数组名就...
不可以。只能逐个元素赋值,最终起到类似数组赋值的效果。如:int a[10],b[10],i;for(i=0;i<10;i++)a[i]=b[i];
你可以用一个指针来接受&a的结果:int (*p)[4] = &a;p用起来有点像二维数组,比如:p[0][2]...
不能。因为变量指针可以递增,而数组不能递增,数组可以看成一个指针常量。代码修改:include<stdio.h> int main(void){ int array[5]={2,4,5,23,5};int *p,i;p=array;printf("请输入是五个数:\n");for(i=0;i<5;i++)scanf("%d",&array[i]);printf("\n");printf("输出五个...
这是一个数组:int a[7];a 包含七个整数的空间,你可以在其中一个中赋值赋值,...
这个操作是合法的,二维数组名是一个指向数组的指针,本质上是一个二级指针,但不能这样:int **p=a;...