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)

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

要点:理解数组名其实就是一把指针!它指向所有元素的第一个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...

楼上都回答得这么复杂吗?我写简单一点的 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。 注:有些编译器可能不需要最前面的...

int a[100];*p; for(;1;) {if(*p!='\0')p++; else p=a;}

假设指针p已经指向的一组数据是连续的,且类型相同,如果是简单数据类型,如int,那么: int a[10] = {0}; int i=0; for (i=0; i

比如指向整形数组的指针可以这样声明int (*p)[10]; int matrix[3][10] = {......}; int (*p)[10] = matrix; 这样,p就指向matrix数组的第一行,执行p++的话,p就指向matrix的第二行了。 或者 char a[10] = "ie8c9d"; char (*p)[10] = a; 这样,p...

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