
正文
c语言数组名地址,c语言数组名取地址
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
c语言,关于对数组名取地址
其中的根源,在于C语言中,声明一个数组其实相当于申请了一个定长的指针(存储位置不同,使用上还是有区别的),你可以将数组名当做指针使用,而反过来,也可以将一个指针,以数组的方式合法访问其成员。
而二级指针,是指向指针地址的指针,变相相当于一个第一维度只有1的二维数组。
单维数组名就是首地址,多维数组名就是第1维的首地址,因此取首地址,可以把数组名赋给对应的指针变量,或取索引为0的首个元素地址赋给对应的指针变量。
可以加取地址符,但是a就表示&a[0],没必要。
对一个字符串指针来说,在scanf函数中“要”与“不要”都能得到正确结果,你可以放心使用。如果你用了&发现有问题,那就赶快告诉我,让我也长进一下。
strcpy(b[0],CH);// 上面就是把字符串复制到b[0]的位置,是整个字符串复制的。
相关问答
Q1: C的数组变量中数组名时数组的首地址
1、选A,数组的首地址。在C语言程序中,数组名表示的是“数组首个元素的地址,而首个元素是int类型”。在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。
2、数组的首地址指针。因为:在C语言中数组的变量名就是指向其首元地址的指针名。数组的其他元素可以通过首元偏移得到。相关概念简介:函数调用:计算机编译或运行时,使用某个函数来完成相关命令。
3、a是二维数组名,也是二维数组0行的首地址。a[0]是第一个一维数组的数组名和首地址*(a+0)或*a是与a[0]等效的,它表示一维数组a[0]0号元素的首地址。&a[0][0]是二维数组a的0行0列元素首地址。
Q2: C语言的结构数组的数组名可以当作地址吗?
1、所有类型的数组的数组名都是一个地址常量,表示数组首元素的地址,不仅仅结构体数组如此。比如:char carr[2];carr的值等于&carr[0]。int iarr[3];iarr的值等于&iarr[0]。
2、选A,数组的首地址。在C语言程序中,数组名表示的是“数组首个元素的地址,而首个元素是int类型”。在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。
3、可以。C语言中数组名实质上是数组的首地址,是一个常量地址,不能进行赋值,因而不能利用数组名来整体引用一个数组,只能单独的使用数组名元素。数组名a单独使用时,数组名此时代表的是数组第1个元素的地址(一个指针常量)。
4、c语言中把数组名作为该数组的首地址,即数组中第一个元素的存储地址。
5、C语言中规定,数组名就代表了该数组的首地址。整个数组是以首地址开头的一块连续的内存单元。如有字符数组char c[10]。设数组c的首地址为2000,也就是说c[0]单元地址为2000。则数组名c就代表这个首地址。
6、错误:变量名不代表地址。需要&才能取地址。B) 结构体数组的名称为该结构体数组的存储首地址。错误:数组名默认情况可以被编译器自动转化为存储首地址,但是不是存储首地址。
Q3: c语言数组、地址问题请高手解释?
字符数组c在内存中占用4个字节,值分别为8,2,0,0 强制转换后,整型指针p指向这个字符数组的起始位置(当前情形为值8所在的那个地址)在小端格式下,p指向的整数被解释为00000208。
所以t+1就是数组第二行的地址,而t[1]代表第二行第列元素的地址;t+2就是第三行的首地址。
C的语法中有些东西可以在机器的层面上解释,有些要在编译器的层面上解释。a这个数组名就要在编译器的层面上解释,编译器把数组名和数组地址当成一个东西,它与变量名是指变量的值而不是地址不同。
c语言数组名地址的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言数组名取地址、c语言数组名地址的信息别忘了在本站进行查找喔。







