char *sex[2];是什么意思?

valtti 2011-10-01 04:16:18
char *sex[2];是什么意思?
谢谢高手解答
...全文
466 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
丰清云淡 2012-02-09
  • 打赏
  • 举报
回复
首先char *sex[2];是指针数组
编译器将各个标识压栈,在遇到*和[]运算符时,由于[]优先级高于*,所以这里解析成数组,而数组中每个元素是指针变量
char (*sex)[2];是数组指针
同理,编译器遇到()和[]时,它们优先级相同,但结合性从左到右,()优先,sex自然解析成指针了,而指针被解析成指向一个char [2]的数组。
不知道LZ明白了么?
程序员小迷 2012-02-09
  • 打赏
  • 举报
回复
char *sex[2];
char *是类型,是数组元素的类型
ForestDB 2012-02-08
  • 打赏
  • 举报
回复
感觉可以这么用:
const int MALE = 0;
const int FEMALE = 1;
char * sex[2] = { "male", "female" };
int gender = MALE;
printf("gender is %s\n", sex[gender]);
wizard_tiger 2012-02-08
  • 打赏
  • 举报
回复
就是一个指针数组,
一个数组,其中的元素为指针。
DyanWang 2012-02-08
  • 打赏
  • 举报
回复
容易混淆的几种:
1)char *sex[2];//本质上是一个数组,但是其中的每个元素又是一个指针,即sex[0],sex[1]相当于是一个指针,指向一个字符串。例如:char *sex[2]={"male","female"};sex[0]指向的是"male"这个字符串的首地址,sex[1]指向的是"female"这个字符串的首地址
2)char sex[10]; //只是一个简单的数组,并分配了相应的内存来存放你想要存的字符。
3)char * sex; //是指针,指向一个字符串,相当于第一种情况里的一个元素(sex[0]或者sex[1])

对于char * sex[2]你可以这样理解,数组中的每个元素都是char * 类型的,因此可以单独指向一个字符串。
quwei197874 2011-10-01
  • 打赏
  • 举报
回复
是一个指向sex数组的指针
hongwenjun 2011-10-01
  • 打赏
  • 举报
回复


char *sex[5]通过调试,我们可以看到结果

char * p 是个 一个指针 char *sex[5] 就是 ( char *sex ) [5],就是有5个char指针
如果想图上的初始化, 前三个就是具体值,后两个为空
前三个指针 使用就是 sex[0] sex[1] sex[2]

chelp 2011-10-01
  • 打赏
  • 举报
回复
char *a[3];
你可以这样看char * a[3];(只是为了便于理解)
它本质是数组,数组内元素是指针
星羽 2011-10-01
  • 打赏
  • 举报
回复
一个指针数组。

你这里没上下文,看名字像和和性别相关的东西
yjjlyyj151 2011-10-01
  • 打赏
  • 举报
回复
http://baike.baidu.com/view/2072881.htm

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧