社区
新手乐园
帖子详情
char *p[2]和char (*p)[2]的区别
tuxiaoxing
2005-12-22 10:55:03
现在,我不知道char *p[2]和char (*p)[2]的区别,请帮忙解释下!
...全文
707
30
打赏
收藏
char *p[2]和char (*p)[2]的区别
现在,我不知道char *p[2]和char (*p)[2]的区别,请帮忙解释下!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
30 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
minico
2005-12-28
打赏
举报
回复
于
glacier_sandgull
2005-12-28
打赏
举报
回复
指针数组;指向数组的指针。
derekchuang
2005-12-28
打赏
举报
回复
char *p[2]
首先p是一个数组,它是一个含有两个char型指针的数组;
char (*p)[2]
首先p是一个指针,它是一个指向二维数组的首地址。
Behard
2005-12-27
打赏
举报
回复
char array[4][4];
char array_8[8][8];
char *p[4];
char (*t)[4];
p[0] = array[0]; // OK
p[0] = array_8[0]; // OK
t = array; // OK
t = array_8; // Error
Behard
2005-12-27
打赏
举报
回复
char *p[4];
是一个数组,其有四个元素,每个元素都是一个 char 型的指针
char (*t)[4];
是一个指针,其能指向一个二维数组的首地址,但是编译器要求最低一维的元素数量为 4
Behard
2005-12-27
打赏
举报
回复
其实测试一下最清楚了
#include "stdafx.h"
#include <stdlib.h>
#include <string.h>
int main(int argc, char* argv[])
{
char array[4][4];
char *p[4];
char (*t)[4];
int i;
strcpy(array[0], "a0");
strcpy(array[1], "a1");
strcpy(array[2], "a2");
strcpy(array[3], "a3");
t = array;
for(i=0; i<4; i++)
p[i] = array[i];
for(i=0; i<4; i++)
{
printf("P %s .\n", p[i]);
printf("T %s .\n", t[i]);
}
system("pause");
return 0;
}
terryjwf
2005-12-27
打赏
举报
回复
我还是不懂,顶!
Super.Jiju
2005-12-26
打赏
举报
回复
char *p[2]是数组指针
char (*p)[2]是指针数组
over
liuy21
2005-12-26
打赏
举报
回复
mark~
terryjwf
2005-12-26
打赏
举报
回复
谁给咱搞个典型例子说明一下啊
双杯献酒
2005-12-24
打赏
举报
回复
char *p[2] 是2个字符
char (*p)[2] 是2个指针
cky41
2005-12-24
打赏
举报
回复
iicup(双杯献酒)刚好说反了
tuxiaoxing
2005-12-23
打赏
举报
回复
char (*p)[2]:
p是一个指向某个二维(每行有2个char元素)数组的行指针;
如 char b[4][2] = {共8个char元素};
p = b;// p是b的首行地址;
*(p + 1)则是b的第2行地址,依此类推。
ddnlkd1204
2005-12-23
打赏
举报
回复
#include<iostream>
using namespace std;
void main()
{
char *p[2] = {"hello"," world!"}; //定义一个一维数组,两个元素,每个元素是一个char *
char (*pi)[2] = (char(*)[2])p[0]; //定义一个指针,指向一个char[2]型数组
cout << ++p[0] << endl; //向后挪1个byte
cout << *(++pi) << endl; //向后挪2个byte
}
shu_yoyo
2005-12-23
打赏
举报
回复
char *p[2] : []优先级大于*,是一个数组,数组里有两个元素,每个元素都是char类型的指针
char (*p)[2]:括号的优先级最高,是一个指针,指针指向有两个char元素的数组。
rainharder
2005-12-23
打赏
举报
回复
mark
zcz0918
2005-12-23
打赏
举报
回复
唉,当时我说type *p[n]是数组被人b4了
Camelh
2005-12-23
打赏
举报
回复
to:Johnny_de(是的,当时就是这样的!)
你的第二个解释有问题!
Rick_ang
2005-12-23
打赏
举报
回复
指针数组和数组指针
Johnny_de
2005-12-23
打赏
举报
回复
我来说下:
char *p[2]表示一个char类型的二维数组,数组的列数为2。
char (*p)[2]中(*p)是一个返回类型为char的函数指针,表示一个2个元素的函数指针数组。
加载更多回复(10)
c语言*p_1 *p_2,C语言中的 *p[2] 与 (*p)[2] 的截然不同
本文详细介绍了C语言中的运算符优先级,解析了*p[2]和(*p)[2]两种表达式的结合方式。通过示例解释了
char
*p[2]和
char
(*p)[2]的
区别
,并探讨了在函数参数中如何使用指针数组,如main函数的
char
*argv[]。此外,还讨论了二维数组的引用以及内存存储问题,展示了二维数组在内存中的布局和访问方式。
关于
char
数组的一点记录
本文详细解析了C语言中
char
类型的三种不同指针声明方式:
char
p1[5]、
char
*p2[5]及
char
(*p3)[5]的
区别
,并通过实例演示了每种声明方式的具体使用方法。此外,还解释了直接赋值与指针赋值的不同之处。
8086怎么输出数组_指针数组 和 数组指针的差别,今天它来了!
本文通过实例解析指针数组(
char
*p1[4]和
char
(*p2)[4])的
区别
,以及复杂的多级指针(
char
(**p2)[4])的概念,帮助读者掌握优先级和内存理解。还探讨了输出指针数组的技巧,涉及字符串和数组嵌套的情况。
详解
char
* p及
char
p[]
本文深入解析C++中
char
*p(),
char
*(*p)(),
char
*p[], 和
char
(*p)[]的
区别
与应用场景,通过实例展示不同类型的指针与数组在内存中是如何工作的,帮助读者理解并正确使用这些复杂的数据类型。
char
*p[4] 和
char
(*p)[4]的
区别
本文详细解析了指针与数组的关系,包括不同声明方式下指针指向数组元素的原理,如
char
a[4]、
char
*p[4]及
char
(*p)[4]的
区别
。通过实例帮助理解指针操作。
新手乐园
33,316
社区成员
41,770
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章