
正文
c语言输出数组变成地址,c语言如何输出数组中的某一个元素
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
一个C语言的题目,为什么我写的程序最后输出是地址?不是值?
1、printf函数(在正确使用的前提下),你输出的为变量,那么打印出来的就是变量值。输出的是变量取地址,那么打印出来的就是变量的地址。
2、比如一个指向二维数组的指针,它就相当于一个一维数组,其中的每一个元素都指向了一个数组。所以*a的值只是一个指向的一维数组的指针,它的值当然是地址了。。
3、这是C的一个机制吧,传递的是地址,然后取得的是值=L=。
4、对于一级指针而言,*p是取值,对于二级指针而言,*p是取地址,但是地址又是无符整形数据,所以在二级指针中你把*p当值来用的话,编译不报错,但是不合规定。
5、这是因为在形参表中,int *p是一个指向int的指针,所以,p+i是一个地址,而p[i]则是完全等价于*(p+i),就是一个指针所指向单元的值。
相关问答
Q1: 如何用C语言实现调用函数的返回值为一数组的地址
1、int * scanffile(FILE *fp,int n){ int i;static int array[10]; //因为array是局部变量,随scanffile()函数的结束,该内存被释放,因此,你在之后得不到相应的数据了。
2、注意C/C++不能直接返回一个数组。这是由于在C/C++中,数组不是一种类型,因此不能被直接返回。在C/C++中,一般有两种方法来返回一个数组。
3、调用完函数还在,而你返回了那个堆上数组的首地址,这样就没问题了。用完free(array);楼上用static不推荐,用static的话会在整个程序的run time运行时都占用空间。而是用malloc,动态申请释放更合理。
Q2: C语言结构体数组,输出中加取地址符是为什么?
取地址符&作为一元运算符,结果是右操作对象的地址。例如&x返回x的地址。地址本身是一个抽象的概念,用于表示对象在存储器中的逻辑位置。scanf(%d,%d,&x,&y);这里的&x表示x的地址,&y表示y的地址。
依照我的理解:& 取地址 就是找到那个分配的内存空间 然后去那块内存里 找我们需要的变量 我这可能是用了oc的解释 因为对c不是很熟悉。&是取地址运算符,&a为变量a的地址。
因为字符数组,数组名本身就是指一个地址。定义了字符型数组char name[10]。name有两个含义:一个是代表着name这个数组第一个位置的地址,也就是name[0]的地址。可以说name就等价于&name[0]。
数组本身是不用的,因为数组本身就是属于引用类型的,用数组名字代表的是整个数组,而不能代表单个的元素,这几年明显是输入其中一个值得,所以就正常的输入一个特定类型的值,需要用取地址符号。
可以加取地址符,但是a就表示&a[0],没必要。
Q3: c语言,关于对数组名取地址
1、其中的根源,在于C语言中,声明一个数组其实相当于申请了一个定长的指针(存储位置不同,使用上还是有区别的),你可以将数组名当做指针使用,而反过来,也可以将一个指针,以数组的方式合法访问其成员。
2、而二级指针,是指向指针地址的指针,变相相当于一个第一维度只有1的二维数组。
3、可以加取地址符,但是a就表示&a[0],没必要。
4、不一样。C语言的字符串为数组形式,而数组的名称可以表示其地址,故对字符串输入不需要加地址符。而单独的字符、整型变量等的名称不能直接表示地址,故需要加地址符。数组名就代表了该数组的地址。
5、单维数组名就是首地址,多维数组名就是第1维的首地址,因此取首地址,可以把数组名赋给对应的指针变量,或取索引为0的首个元素地址赋给对应的指针变量。
6、对一个字符串指针来说,在scanf函数中“要”与“不要”都能得到正确结果,你可以放心使用。如果你用了&发现有问题,那就赶快告诉我,让我也长进一下。
Q4: C语言的结构数组的数组名可以当作地址吗?
1、所有类型的数组的数组名都是一个地址常量,表示数组首元素的地址,不仅仅结构体数组如此。比如:char carr[2];carr的值等于&carr[0]。int iarr[3];iarr的值等于&iarr[0]。
2、选A,数组的首地址。在C语言程序中,数组名表示的是“数组首个元素的地址,而首个元素是int类型”。在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。
3、C语言中规定,数组名就代表了该数组的首地址。整个数组是以首地址开头的一块连续的内存单元。如有字符数组char c[10]。设数组c的首地址为2000,也就是说c[0]单元地址为2000。则数组名c就代表这个首地址。
4、不对。数组名是数组的首地址,就是数组中第一个元素的地址,是常量。常量是不能出现在赋值号=左边作为左值的。
5、c语言中把数组名作为该数组的首地址,即数组中第一个元素的存储地址。
6、数组一旦定义后,在程序执行过程中,其地址是不会变的 也就是说,数组名表示数组的地址,从某个角度上说,它就是一个符号常量 既然如此,给name赋任何值,都是错误的。
Q5: C语言:数组的值是地址
比如一个指向二维数组的指针,它就相当于一个一维数组,其中的每一个元素都指向了一个数组。所以*a的值只是一个指向的一维数组的指针,它的值当然是地址了。。
地址值就是内存单元地址。例如:int a,*p,b[10];scanf(%d,&a);p=a;指针变量p存放的就是地址值,是整型变量a分配到的内存单元地址。
是地址,可以称作数组地址,也可以看成第一个元素的地址。
c语言输出数组变成地址的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言如何输出数组中的某一个元素、c语言输出数组变成地址的信息别忘了在本站进行查找喔。






