在C语言中,数组名代表数组的首地址,也就是数组第一个元素的内存地址。数组名本身是一个常量表达式,其值不能改变(即不能对数组名进行赋值操作)。例如: c int arr[10]; 这里,arr就是数组名,它代表数组arr的首地址。 数组名与指针的关系: 数组名在很多情况下可以像指针一样使用,比如作为函数参数传递时,数组...
num_arr);// 数组名指向的地址printf("num_ptr: 0x%x\r\n",num_ptr);// 指针指向的地址printf("===\r\n");for(i=0;i<10;i++){printf("%d:%d\r\n",num_arr[i],num_ptr[i]);//
1、数组名不是指针 我们先来推翻"数组名就是指针"的说法,用反证法。 证明 数组名不是指针 假设:数组名是指针; 则:pStr和str都是指针; 因为:在WIN32平台下,指针长度为4; 所以:第6行和第7行的输出都应该为4; 实际情况是:第6行输出10,第7行输出4; 所以:假设不成立,数组名不是指针 2、数组名神似指针 ...
1、数组名不是指针 我们先来推翻"数组名就是指针"的说法,用反证法。 证明 数组名不是指针 假设:数组名是指针; 则:pStr和str都是指针; 因为:在WIN32平台下,指针长度为4; 所以:第6行和第7行的输出都应该为4; 实际情况是:第6行输出10,第7行输出4; 所以:假设不成立,数组名不是指针 */ 这是文章里面的...
不是指针,为什么str能赋值给指针呢? 3、数组名是不是指针的指针 #include <string.h> #include <iostream.h> int main(int argc, char* argv[]) { char str1[10] = "I Love U"; char str2[10]; strcpy(str2,str1); cout << "string array 1: " << str1 << endl; ...
一,数组a【】的数组名是地址常量 *a是常指针(方向固定指向的地址固定) 比如int a【】={1,2,3} 这里定义了一个数组a 这里数组名a(或者是*a)就是一个常指针也就是这个指针方向不能改变 比如我们不能int p=3 然后让 a=&p 也不能进行 a++这种操作 ...
百度试题 结果1 题目下列关于C语言中数组的描述,正确的是: A. 数组名是一个变量名 B. 数组名是一个常量 C. 数组名是一个指针 D. 数组名是一个函数 相关知识点: 试题来源: 解析 B 反馈 收藏
3 数组名是指针,可以使用a[i]这样的操作,那么同类型指针p可不可以使用p[i]来代替 *(p+i) 呢?答案是肯定的。4 解释一下,指针进行p+1操作对于不同类型的p是不同的,具体看存储不同类型的数据需要多少个字节。两个相同类型的指针只能进行减操作;相加,相乘和相除是没有意义的。5 相信大家已经知道了...
正确答案:B解析:C语言中,数组名本身就是一个指针,指向数组内存的起始位置,选项A正确;可以将一个指针指向一个同类型的数组,选项C正确;指针指向一个数组后,可以通过移动指针,指向该数组中的任意一个元素,选项D正确;已经定义的数组被分配了内存空间,所以可以读入数据到数组中,未赋初值的指针没有分配内存空间,所以不...
定义数组时,要给出数组名和数组长度,数组名可以认为是一个指针,它指向数组的第 0 个元素。在C语言中,我们将第 0 个元素的地址称为数组的首地址。以上面的数组为例,下图是 arr 的指向: 数组名的本意是表示整个数组,也就是表示多份数据的集合,但在使用过程中经常会转换为指向数组第 0 个元素的指针,所以上面...