碰到个题,求大佬指点..题:设typedefcharSTRING[255];STRING*s;,则s是()A.字符数组B.字符变量C.字符指针数组D.字符指针变量答案是C,为啥不是D呢?这里的指针s是怎么指向数组的啊?
2 回答
慕无忌1623718
TA贡献1744条经验 获得超4个赞
答案是,指向字符数组的指针变量。它也不是一个字符指针的数组。typedefcharSTRING[255];intmain(){chararr[255];//指向字符数组的指针//arr是字符数组//s中保存了字符数组的地址//相当于char(*s)[255]STRING*s;s=&arr;//字符指针的数组//数组的每个元素是一个字符指针charch='a';char*ptr_arr[255];ptr_arr[0]=&ch;return0;}
浮云间
TA贡献1829条经验 获得超4个赞
STRING为有255个char元素的数组,STRING*s则为指向有255个char*元素的数组,其中每个char*都指向char[255]typedefcharSTRING[255];STRING*s;STRING*s等价(*s)char*[255];使用c++的typeinfo打印变量类型#include #include usingnamespacestd;typedefcharSTRING[255];intmain(){STRINGs1={0};STRING*s2;cout<<"s1type:"<cout<<"*s2type:"< cout<<"s2[0]type:"< return0;}output:[root@typedef]#g++typedef.cpp[root@typedef]#./a.outs1type:A255_c*s2type:PA255_cs2[0]type:A255_c
添加回答
举报
0/150
提交
取消