首页 >>  正文

指针数组如何使用

来源:baiyundou.net   日期:2024-09-23

柯图单2339怎么用指针定义动态数组 -
左怖功13441956965 ______ 指针数组:如 int *p[4] 定义4个指针变量p[0],p[1],p[2],p[3] 通过指针引用数组的元素.指针指向首地址,再p++,则可指向下一个数组.这样就引用了所有的数组元素.int a[10]; int *p; p=&a[0]; p++;

柯图单2339通过指针数组引用数组元素? -
左怖功13441956965 ______ *(&a[0][0]+3*1+2) &a[0][0]是首地址, &a[0][0]+3*1+2是首地址后面第五个元素,也就是a[1][2] 不能 p=a 这样赋值,p是int*[2]类型,a是int[2][3]类型 类型不同不能赋值 int a[2][3]是申请的一个连续地址,而*p[2]是一个指针数组,如果你能把每一行的首地址赋给这个指针数组的话,可以这么使用.但是如果只是给首地址赋值的话,此时这个指针数组的第二个元素,也就是第二行的首地址为一个随意地址,没有意义,不是连续的,所以不能实现*(p+3*1+2)来表示a[1][2]

柯图单2339C语言,指针(*p)[]怎么用 -
左怖功13441956965 ______ 指针数组 用法你可以把他当成多个指针...例如p[0]是个指针 p[1]也是个指针 具体的看下面 http://wenku.baidu.com/view/2ba171ea551810a6f52486aa.html?re=view

柯图单2339c++指向函数的指针数组的定义和用法
左怖功13441956965 ______ 关于这个问题,int(*p)();这是函数指针,intA(),这是函数,p=A或p=&A都行(这是一个很神奇的地方), 同理,指针数组就是int(*p[])();他的指向和前面一样,你让他指向一个函数就行了,像其他数组用法一样,至于使用也是很神奇的,你可以用p(),也可以用(*p)().这些比较奇怪的问题你可以看那些比较有名的书籍,比如C和指针,或C专家编程之类的.

柯图单2339如何使用指针从函数返回一个数组 -
左怖功13441956965 ______ 假设指向数组的指针所指向的数组是:int a[M][N] //M、N都是符号常量 函数返回一个指向数组的指针,则可以这样定义: int (*)[N] func(int a[][],其他形参) //函数返回值类型为int (*)[N] { int (*p)[N]; p=a; //数组指针指向a ...... return p; }

柯图单2339c++指针数组怎么使用怎么初始赋值? -
左怖功13441956965 ______ 动态数组用new分配空间

柯图单2339怎么用指针操作二维数组 -
左怖功13441956965 ______ //定义一个二维数组 uint8_t test[3][2] = {{1,2},{3,4},{5,6}}; //定义一个指针,指向该数组首元素 uint8 (*p)[2] = test; //取t[0][1] tmp1 = p[0][1];//用数组方式 tmp1 = *(p[0] + 1);//指针地址加数组下标方式 tmp1 = *( *(p + 0) +1 ); //纯地址方式

柯图单2339急!应用指针数据类型如何操纵一维数组 -
左怖功13441956965 ______ 个人见解.首先,指针类型应与数组类型相同.第二,初始化数组后,指针应与数组挂钩,就是p=a或p=&a[0].第三,p++,就是指向下个数组中元素(因为声明时,如char *p就是跳一个字节).我不知道你说的如何操纵一维数组具体是什么意思.1.指针就是地址2.指向一维数组貌似int *p,char *p(其中又分字符,字符串)较多,其他好像我也没怎么用了,所以先把这两个分清即可.3.还有一种个人认为较难,就是函数调用中用指针.

柯图单2339c 一维字符指针数组的使用 -
左怖功13441956965 ______ char *m[5], 只是宣告了5个指针, 并没让它指向哪儿 只有char *m[5]={ "abc", "def", "ghi", "jkl", "mno" }, 这5个指针才被编译器设为指向每一对应的字串 在这样的定义下m[2]是字串, 而m[2][1]是字符'h', m[2][0]是字符'g', 也可以被写成*m[2]也是字符'g' 不管是m[2]还是m[2][1], 都是指针, 只是m[2]是字串的指针, 而m[2][1]是字符的指针

柯图单2339怎样用指针输出一个数组 -
左怖功13441956965 ______ 改成以下这样就可以了,因为你原来的先执行*p++;后打印,由于打印前p++已经执行一次了,也就是地址向下移了一位,所以你的打印是从第二个数开始打印,而且打印最后那个数会内存越界出错. #include<iostream> using namespace std; main() { int i,*p; int a[10]={12,23,85,8,54,77,89,44,20,95}; p=&a[0]; for(i=0;i<10;i++) { cout<<*p;//先打印 p++;//再移到下一位 } cout<<endl; }

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024