knrt.net
当前位置:首页 >> 指针数组指向下一个数 >>

指针数组指向下一个数

选C. p=a. 那么不管是p+1还是a+1都是a[1]地址. D中 ++p, 先自加 再取值, 所以值也是a+1的值. 只有C, a是数组名,不可以自加. 这个表达式本身非法.

举例如下—— #include "stdio.h"int main(int argc,char *argv[]){ int a[5]={1,2,3,4,5},b[4]={10,20,30,40},*p[2]={a,b},i;for(i=0;i

1. 数组实质上是指向一段连续内存区域起始地址的指针,所以int[10]可以复制给int*,这样只会造成数组退化(编译时长度信息丢失)。 2. *p = a永远不会错,因为你只是将a的值赋给了p所指向的内存区域,这句在编译时永不会报错。 3. (*p + 10)和(*...

p[3]或者*(p+3)

void main(){ int a[5]={1,3,5,7,9}; int * num[5]; int **p,i; for(i=0;i

要点:理解数组名其实就是一把指针!它指向所有元素的第一个inta[10];则它的内存分布:a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]数组名a就是指向了第一个元素a[0]的地址(注意是地址)所以上面的也可表示为:*(a+0)*(a+1)*(a+2)*(a+3)*(a+4)*(a...

指针数组是一种特殊的数组,指针数组的数组元素都是指针变量。指针数组的定义格式为: 类型名称 *数组名称[数组长度]; 例如:float *pf[3]; 因为下标运算符[]的优先级高于指针运算符*,上述定义等价于:float * (pf[3]); 说明pf是一个含有3个元...

楼上都回答得这么复杂吗?我写简单一点的 struct str{ int n; int s; }; void main() {struct str a[2]={1,2,3,4};//声明一个结构数组并对数组a[0]中的成员n和s 分别赋值为1和2,对a[1]中的成员设置为3和4。 注:有些编译器可能不需要最前面的...

其实这个问题我一直也迷迷糊糊的,直到装了VS2015,这个的内存查看非常方便,可以通过内存对比看看不同的语句释放内存的结果到底怎么样。 delete p;// 内存完全释放 2. delete []p; //内存完全释放 以上可以看出这两个语句都可以释放 new int ...

这是最基本的指针与数组之间的关系的题目,想学好C语言,这一关必须得过。 #includeint main(){ int arr[10]; int *pa=arr, sum=0, i; for(i=0; i

网站首页 | 网站地图
All rights reserved Powered by www.knrt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com