为了账号安全,请及时绑定邮箱和手机立即绑定

小白,请教各位大佬!C语言typedef用法问题十分感谢

小白,请教各位大佬!C语言typedef用法问题十分感谢

梦里花落0921 2019-08-10 10:37:39
碰到个题,求大佬指点..题:设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;
}
                            
查看完整回答
反对 回复 2019-08-10
?
浮云间

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.out
s1type:A255_c
*s2type:PA255_c
s2[0]type:A255_c
                            
查看完整回答
反对 回复 2019-08-10
  • 2 回答
  • 0 关注
  • 396 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信