11问答网
所有问题
当前搜索:
取数组的地址
C语言 我是初学者
答:
i]表示的是一个
数组的
首
地址
,a[i]+j就是第j个元素。至于a+i*h+j,就是讲二维数组看成从左到右,从上到下顺序排列,编译器也是这样存的数据。你要取i行j列的数据,a//二维数组首地址 i*h//每曾一行数组元素就曾i*h个,也就是地址曾i*h,h是数组每一行的长度 j//i行的第j个 ...
二维
数组
指针
地址
值问题p[i][j]=&a[i][j];
答:
int *p[8][3];是定义一个二维指针数组,
数组
里的所有元素都是基类型为int的指针变量,存地址。 int a[3][3]; 定义一个二维数组 ,数组元素都是int型变量 所以p[i][j]=&a[i][j]; 就是p数组里的一个指针元素存a数组里的一个元素
的地址
。a[i][j]=0; 就是给a数组里的这个元素...
假定a为一个整形
数组
名,则元素a[4]的字节
地址
为___.
答:
首先a若表示
数组
名,则a等价于数组首个元素
的地址
,即a[0]的地址。数组在内存中是以线性的方式连续存储的,就是a[0]、a[1]、a[2]···这样连续存放。其中一个元素的地址可由首地址加上偏移量计算出,即a[i]的地址 = a[0]的地址 + i * 数组元素类型所占的字节数。所以:a[4]的字节...
数组
与坐标的关系
答:
按你的例子,要查找a[x][y],首先系统获取这个
数组的
首
地址
,即数组名,然后是看第一维的x,即行数,是第x+1行(用我们中国人的习惯,西方人则习惯从0开始计数),接下来看第二维的y,即列数,是第y+1列,这样就像在坐标系中分别画了两个垂直于坐标轴的直线,他们的交点即是所要找的数。
为什么c语言中,
数组
名是一个
地址
常量,不能对它进行赋值运算
答:
在最终的汇编结果中,
数组
名只是一个标号,对应一个
地址
,在程序中使用数组就是要替换成这个起始地址,因此作为标号本身是不可以修改的,也不是一个变量。用数组名进行计算就是用数组起始地址计算,但不可以给数组名重新赋值
C语言fwrite()函数中第一个参数buffer,为什么要用
取地址
符号&
答:
用数组名表示第一个数组元素
的地址
,也即
数组的
起始地址,对于其他数组元素,还是需要
取地址
符的
为什么字符指针指向字符串的时候,输出时不需要再指针前加*号呢?_百度...
答:
因为char *str这个定义了一个类型为char *的字符型指针str ,而str指向了 I LOVE CHINA!中的第一个字符I。cout流里面有一个循环就是输出str指向的字符串,其中把str赋给了temp指针,作为移位用,从而一个个输出出来。而*str是一个字符了就是I ,*是解引用 就是读出str指向的字符 ,所以*str就...
*(a+i)与a[i]与(a+i)是一样
的地址
,为什么?
答:
二维
数组
可以看成一维数组,不过它的每一个数组元素又是一个一维数组,比如a[3][4]的第一行元素a[0][0],a[0][1],a[0][2],a[0][3]可以看成是一维数组a[0]的4个元素,即把a[0]看成一个数组名。故二维数组a[i][j]
的地址
可以表示成a[i]+j或 (a+i)+j。再懂了吧。
c++问题!!!
答:
取地址当然相等了&a[1][0] = a[1],同样a[1]也可以理解为第二个
数组的
头指针,取地址还是一样&a[1][0] = a[1] = &a[1],&&a[1][0]这是对内存中
的地址取地址
,当然会报错!一个简单的例子 int a[2];cout<<a<<endl;cout<<&a<<endl;结果是一样的!
在C语言中有
地址
传递这一说吗?详情见下面
答:
看这个函数申明:void CreateALGraph(ALGraph *G)如果这么调用:CreateALGraph(&g);这里在调用函数的时候,先给G分配一个空间(4字节,指针在现在编译器中基本都是占4个字节),然后取g
的地址
,将这个地址复制给G。也就是说G中存放的是g的地址。这里要注意的是,G里面的内容虽然是g的地址,即G指向...
棣栭〉
<涓婁竴椤
67
68
69
70
71
72
73
75
76
涓嬩竴椤
74
其他人还搜