66问答网
所有问题
当前搜索:
数组地址和数组首地址
为什么C语言中*(a+i)+j能表示a[i][j]的
地址
答:
a[0]、a[1]、a[2]是数组a的元素,而这个元素是数组,而不是我们通常认为的基本数据类型的数据 所以*(a+i)就是获取数组a中第i个元素,等价于a[i],而a[i]本身又是一个包含有4个int型数值的数组,a[i]是这个一维数组的数组名,我们知道数组名的本质是一个
地址
,是
数组首
元素地址,所以 (...
C语言中定义一个指向字符的指针
数组
char *s[5], 则*s[1],s[1],*(s...
答:
void sort(char *s[]) 这里接收到的是指针数组,即:数组中各元素 是指针地址,s是
数组首地址
s[i]表示第i+1个元素 的值(地址,一个字符串的首地址,* s[i] 表示这个字符串的第一个元素,是个字符)s+i是第i+1个元素的地址,*(s+i)是地址中的数据,等同于s[i]
C语言int a[5],*p; p=a;和p=&a;的对错问题~希望详细点,谢谢啦_百度知 ...
答:
先上结论:对于int a[5],*p;p=a; 或p=&a[0]是正确的 p=&a严格来说是错误的 首先要搞清楚a与&a的区别:a表示
数组首
元素的
首地址
,即元素a[0]的地址;&a表示整个数组的地址。二者的值是相同的,但意义并不一样。正如成都市政府与四川省政府的地址都在成都,但二者表示的含义不同。如下...
下图中的C语言程序 intarr为什么是
数组
指针?
答:
图中的C语言程序 intarr是一个指向整数的指针,这个整型
数组
是在函数调用的时候,由实际参数传递而来的一个数组。
关于
数组
指针的问题?
答:
首先,第一段代码不是这样理解的
数组
名等效于该数组的
首地址
,即arr与&arr[0]等效 传递给p的不是arr数组名,而是该数组的首地址 对于第二段代码,我们要先好好地理解“指针”是什么 int *p 就声明了p是一个int型的指针变量 它所存储的信息是一个int型变量的地址 那么p+1就是与*p相邻的下一个...
关于
数组首地址
赋值给指针
和数组
指针的问题
答:
从编译器的角度来讲,int *p定义了一个指向int型的指针p。而a本身已经是指向int型的指针了,对a做取值操作,返回的结果是int **类型的,造成类型不匹配,所以不能这样写:int *p = &a;而int (*pa)[5]定义了一个指向5个元素的int
数组
的指针,而a只是数组的
首地址
,&a才是数组的指针,同样...
C语言中一个二维
数组
它的数组名是a 那a和*a有什么区别?
答:
对于二维
数组
名a和*a,二者的区别在于类型不同。对于 TYPE a[M][N];当使用a时,可以等同于二级指针TYPE **型。而使用*a时,等同于TYPE*型。从概念上说,a表示二维数组a的
首地址
,而*a表示二维数组a第一行a[0]的首地址。这样在使用的时候就有所区别。比如 对a的操作a[4]表示a的第四行首...
指针
与数组
的关系是什么啊
答:
1、指针:系统为某一个变量开辟单元格,指针便指向此单元格的变量值。2、数组:系统为某一组数开辟一组单元格,
数组首地址
便是你定义的数组变量名。数组和指针的唯一区别是,不能改变数组名称指向的地址。对于数组来说,数组的首地址,也可以用指针来表示操作,如:int a[10];int *p,n;p = a;...
...*p,*q;p=q=a; 则能正确表示
数组
a首元素
地址
的表达式有?
答:
例如,a 和 &a[0] 是等价的,但前者是数组名,可以直接被作为指向第一个数组元素的指针使用,而后者是取址运算符作用于数组下标为 0 的元素上的结果,相当于对该元素的取
地址
。而 p、q、p+0 和 q+0 都是指针,可以通过解引用操作 *p 或 *q 来获取到
数组首
元素的值。
若有定义:int x[5],*p=x;则不能代表
数组首地址
的是?我知道这个&x是错 ...
答:
这样跟你解释吧,
首地址
即
数组
元素中第一个的位置,对吧?既然是首地址,那么指针就必须知道数组中的具体位置。首地址那必须就是*p=x[0],或&x[0].您所问到的&x其实表示的是x数组存放在内存中的地址。而不能表示数组中的某一个地址(包括首地址在内)。这样解释您能挺懂吗?另外:&x 系统是...
棣栭〉
<涓婁竴椤
4
5
6
7
9
10
8
11
12
13
涓嬩竴椤
灏鹃〉
其他人还搜