关于指针数组输出时如何显示分别显示 地址,元素,

const char* test[5] =
{
"帅气的小伙.",
"漂亮的美女.",
"优秀的小伙.",
"怎么说呢...",
"优秀的小牛."
};
for (int i = 0; i < 5; i++)
{
cout << test[i] << endl;
cout << **(test[i]) << endl; //这里的解除引用符号只有一个 不知道为什么一个不显示,两个就多一个
}
test是一个指针数组
1.但为什么第一个输出会输出 元素内容而不是输出地址 **
2.第二个可以运行 证明 tset[i]是指针 (就让我很疑惑为什这么明明是指针但第一个为什么输出的不是地址)
3.第二个为什么解除引用后 会输出 空 白啊
求大佬抱

3个回答

/* 这么写能理解了么 ?
你声明的是个指针数组
第一个打印,例如:i= 0 打印的是 test 的第 0 号元素的内容 
第二个吧  写法好像不对  语法有问题样   &*(test[i])   这么写才对吧,  &*(test[i]) == test[i]  
你再百度了 指针数组详细的看看吧
*/
const char* test[5]    == const char test[ 5 ][20]  

    const char test[ 5 ][20] =
    {
        "帅气的小伙.", // 0
        "漂亮的美女.",  // 1
        "优秀的小伙.",  // 2
        "怎么说呢...",  // 3
        "优秀的小牛."   // 4
    };

d2262272d
潇潇-易水 回复我说爱人啊cium: 前面半截的理解大概是对的吧,你整的我有点迷了,不加const也是能编译通过的啊,加了const只是声明了test内容不可更改,比如const i= 0; i = 1; 这样就是错误的
6 个月之前 回复
Isaymylover
我说爱人啊cium 回复潇潇-易水: 是不是这个东西当后面被初始化为字符串后,test[i]这个五个指针中就储存了 这五句话的地址,也就是为什么前面不加const编译不通过的原因对叭 (我有点菜,刚学到这里,有点迷,很麻烦你了,抱歉啊)
6 个月之前 回复
d2262272d
潇潇-易水 回复我说爱人啊cium: 五个汉字?跟指针有啥关系, 这五个汉字是被写在内存中了 ,然后test是个指针 ,指向了它
6 个月之前 回复
Isaymylover
我说爱人啊cium 等于说我 声明的那个 里面 的五个汉字 就是 ''五个指针的名字'' 对叭?
6 个月之前 回复
Isaymylover
我说爱人啊cium thank
6 个月之前 回复

输出元素地址你试试&test[i],&是取地址的意思。

1、这个是因为cout << char * 就是会输出字符串内容而不是地址,这个函数就是这么定义的。
2、这个应该通不过编译的,不知道你的在哪个环境下可以运行,我用window64 + g++通不过。
3、如果要输出一个变量的地址可以用&,比如&test或者&test[i],&test会等于&test[0]。

Isaymylover
我说爱人啊cium 谢谢啊,准备先去看看输入输出 我是visual studio2017下编译的
6 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
关于在debug中输出时显示的进制问题?
debug中调试程序时,输出的数字是十六进制??不好看,怎么改成十进制输出。。方便查看调试情况。。
如何把byte输出时显示成相应的16进制
我想把byte 变量,例如是 byCount = 0xa0;rn用System.out.println()输出时就是rnA0呢?rnrn谢谢
关于元素的显示与隐藏
元素的显示与隐藏 当有些时候我们想让一个元素仅仅用来被页面选中的其他元素重复使用,提供某种信息,而非直接展示给用户使用时,我们就会会需要元素的隐藏。在网页的应用中,显示/隐藏某个元素或是组件是一件经常要做的事,尤其是现在的一些比较流行的单页应用中。 目前比较主流的显示/隐藏方式有两种: 1.CSS里面的display:none; 2.CSS里面的visibility:hidden。 他们都会使元素...
如何显示html元素
除了windowless以外,在silverlight中,如何在silverlight上显示一html元素,比如一divrnrn因为windowless设置为true会带来很多其他的问题,所以不能用windowlessrnrn
如何显示地址?
我在TC2.0中,想显示地址,格式为:段地址:偏移地址,rn可是它只显示偏移地址,请问为什么?怎么改?rnvoid far *ptr;rnptr=MK_FP(2,16);rnprintf("ptr is %p\n",ptr);
返回指针数组并显示指针数组的内容?
下面代码哪里不对?rn[code=C/C++]rnchar *recs()rnrn char *pstr[3];rn pstr[0]="ab";rn pstr[1]="cd";rn pstr[2]="ef";rn return pstr; rnrnvoid main()rnrn char *p1[3];rn int i;rn p1=recs();rn for(i=0;i<3;i++)rn rn printf("%s\n",pstr[i]);rn rnrn[/code]
指针数组的第一个元素地址好象变了?WHY?
以下这段程序运行后。。。rnchar*c1[2] = "MD", "XR";rnchar c2[]="No1 c2[0]= ";rnchar c3[]="No1 c3[1]= ";rnstrcat(c2,c1[0]);rnstrcat(c3,c1[1]);rnrnchar c4[]="No2 c4[0]= ";rnchar c5[]="No2 c5[1]= ";rnstrcat(c4,c1[0]);rnstrcat(c5,c1[1]);rnrnrn预想出c2 c3 c4 c5 为 rnNo1 c2[0]= MDrnNo1 c3[1]= XRrnNo2 c4[0]= MDrnNo2 c5[1]= XRrn实际为rnNo1 c2[0]= MDrnNo1 c3[1]= XRrnNo2 c4[0]= rnNo2 c5[1]= XRrn1、好象c1[0]被改掉了,什么道理?似乎c1[0]中保存的指正偏移了rn2、如何按照预定的得出结果呢?rn3、如果strcat全换为strcpy,则c2 c3 c4 c5 为rnMDrnXRrnMDrnXRrnC1好象没变,两个函数有哪点差异。rn
asp数据输出时内容信息显示问题。
asp网站,数据库把内容输出显示时,怎么对第一条内容信息单独处理样式?上个问题的朋友的代码不怎么会用,我现在给出我的代码。rnrn<% rn'数据库查询 rndim pageCount rn'把page转换成整数 rnpage = cint(request("page")) rnsql="select * from Link where hmd=False order by time desc"rnSet rs= Server.CreateObject("ADODB.Recordset")rnrs.open sql,my_conn,1,1rn if rs.eof and rs.bof thenrn response.write " 没有可排行的对象"rn elsernend if rnDim RecordCount '总记录条数rn' 设置记录集在每页的总行数,也就是 PageSize属性 rnRS.PageSize=50 rn'把rs.pageCount转换成整数和page才能作比较 rnpageCount = cint(rs.pageCount) rn' 设置当前的页号( AbsolutePage属性) rnif page = 0 then rnpage =1 rnend if rnRS.AbsolutePage = page rnx=1 rn' 显示当前页中的所有记录( PageSize中设置的行数) rnrnWHILE NOT RS.EOF AND NumRows rn内容1rn内容2rn内容3rn……rn<%RS.MoveNext rnNumRows=NumRows+1 rnWEND%> rnrn应该怎么把 内容1 加粗或者加色或者可以随意处理样式?rn如果复杂,就加粗可以了~~~
php瀑布流输出时文字始终在浏览器最底部显示;
1、设置文本显示区域 //滚动条设置始终在最低端 echo ''; echo ''; echo ''; 2、瀑布流输出方法 //页面追加内容 public function push_div_content($div,$content){ echo(' var h = $(".scorpall")[0].offsetHeight; $("body").scrollTop(h);
用write函数向终端输出时,终端重复显示。
在进程中有很多模块,为了问题追溯,每个模块都将自己的一些的重要的log信息存储到一段内存中(内存大小2M),然后由进程中一模块专门从这段内存中将log信息输出到终端(该模块接收某个终端的命令后,会以非阻塞的方式open该终端,然后write函数将信息输出到终端)。rn现在出现一个奇怪的现象:rn 进程在终端a中手动运行,然后在终端b中发送命令使其在终端b中输出log信息。在打印信息少的时候终端输出都正常,但是当输出的log信息过多时候,在终端b上不输出log信息了,反而在终端a上不停的输出log信息。过一段时间后,终端a停止输出log信息,终端b的恢复正常。这时候发现在终端a中输出的信息是重复输出,这些重复输出的信息在终端b上只输出了一次。rnrn从现象上看好像是在进入输出模块中时,write不输出,反而像是用printf函数在终端a中进入某个大循环输出了。仔细阅读了输出日志的模块代码没有发现什么进入死循环的bug。rnrn由于语文水平实在太烂,也不知道我表述清楚了没。rnrn请教各位大侠,什么原因会造成这种情况?会不会是内核的某种机制导致这种情况?
请问我想输出时显示货币分割符怎么办??
我有一个数据库字段为价格,有一个表单可以输入多少钱,我想输入完后,自动在文本框里显示232,323,232.23rn这样显示很清楚,请问怎么做,在那里设置
Java在输出时显示System.out.print的所在类的行信息。
如题,代码如下。 注意: 层级是自顶向下,所以输出的时候是反过来的。 由于getStackTrace()返回自身,而getStackTraceInfo()不需要返回,所以在显示时-2.由于getStackTrace()返回自身,而getStackTraceInfo()不需要返回,所以在显示时-2. public static String getStackTraceInfo() { St...
为什么在执行一个算法输出时cmd不能显示完整?
我执行输出1-1000的平方,对数。指数。。等,cmd怎么从800多开始显示的?rn算法没错,谁知道原因呢?怎么解决rn[img=http://b309.photo.store.qq.com/psb?/V12jxXF73Oy85e/0KsOuItGtJqALgQK7ury8Agxm3A8ms4UANMED74cmys!/b/YQ1cNbhqAwAAYmLuPLhrAwAA][/img]
C语言 输出时多显示了一个数据
![图片说明](https://img-ask.csdn.net/upload/201706/03/1496496311_150613.png)n![图片说明](https://img-ask.csdn.net/upload/201706/03/1496496320_932018.png)n第一步输入完数据后 然后退出进行第五步输出数据时 学号输出的时候还附带了姓名(就是本来应该只输出学号却还多输出了名字) 不知道为什么?nn源代码如下n#includen#includen#includen#includen nint bExit = 0;nint total = 0;n#define Create(the_one) the_one=(Stu *)malloc(sizeof(Stu))ntypedefnstruct Studentnn n char num[12]; // 数字学号n char name[20]; // 姓名n char sex[5]; // 性别n char telnum[11]; // 电话号码n struct Student *next;nStu;nStu *the_one, *h, *pr,*last, *end;n n n n//1.添加学生函数nvoid ADD()nn int Four = 0;n printf("================================\n");n n Create(the_one);n the_one->next = NULL;n end = last; //end指向倒数第二个结点n n last->next = the_one;//将the_one放在链表的 最后n last = the_one; //last指向倒数第一个结点 n n n n //输入学号n printf("输入学生信息:\n12位学号:");n n while (!Four)n n gets(the_one->num);n if (strlen(the_one->num) != 12)n printf("输入非法:学号必须是12位,请重新输入!\n学号:");n elsen Four = 1;n n n n //输入姓名n printf("学生姓名:");n gets(the_one->name);n //输入电话号码n printf("学生电话号码(11位):");n gets(the_one->telnum);n //请输入性别n printf("请输入性别(填写男或女): ");n gets(the_one->sex);n n //总数+1n total++;n printf("================================\n");nn nn//2.查询学生函数nvoid CHECK()nn Stu *target, *p;n int fond = 0;n printf("================================\n");n printf("输入要查找学生的学号:\n学号:");n Create(target);n gets(target->num);n for (p = h->next; p; p = p->next)n n if (!strcmp(p->num, target->num))n n printf("学号为%s的学生信息:姓名(%s),性别(%s),电话号码(%s)\n", p->num, p->name,p->sex, p->telnum);n free(target);n fond = 1;n n n if (!fond)n printf("Wrong Student NO.!\n");n printf("================================\n");nn//3.编辑学生nvoid EDIT()nn Stu *target, *p;n int fond = 0;n printf("================================\n");n printf("输入要编辑学生的学号:\n学号:");n Create(target);n gets(target->num);n for (p = h->next; p; p = p->next)n n if (!strcmp(p->num, target->num))n n printf("学号为%s的学生信息:姓名(%s),性别(%s),电话号码(%s)\n", p->num, p->name,p->sex, p->telnum);n printf("请选择修改项目:\n1:姓名\n2:电话号码\n");n char c;n c = getch();n switch (c)n n case '1':n printf("输入正确的姓名:");n gets(p->name);n break;n case '2':n printf("输入最新电话号码:");n gets(p->telnum);n break;n n printf("学号为%s的学生最新信息:姓名(%s),性别(%s),电话号码(%s)\n", p->num, p->name,p->sex, p->telnum);n n free(target); // ??n fond = 1;n n n if (!fond)n printf("Not Exit This NO.!\n");n printf("================================\n");n nn//4.删除学生nvoid DELETE1()nn void PRINALL();n PRINALL();n Stu *target, *p, *pr;n int fond = 0;n printf("================================\n");n printf("输入要删除学生的学号:(如果删除所有学生信息,请输入0000)\n学号:");n Create(target);n gets(target->num);n n // char *zero=&"0000";n n if (!strcmp(target->num, "0000"))n n h->next = NULL;n total = 0;n n elsen n n for (pr = h, p = h->next; p; pr = pr->next, p = p->next)n n if (!strcmp(p->num, target->num))n n printf("学号为%s的学生信息已删除\n", p->num);n free(target);n pr->next = p->next;n p->next = NULL;n // free(p);此句报错n fond = 1;n total--;n n n if (!fond)n printf("没有找到学号为%s的学生,请确认学号输入是否正确\n");n n printf("================================\n");nn//5.打印全部nvoid PRINALL()nn int amounts = 1;n Stu *ap;n printf("================================\n");n printf("所有学生信息:\n");n for (ap = h->next; ap; ap = ap->next) n printf("%d,%s,%s,%s,%s\n",amounts++,ap->name,ap->num,ap->sex,ap->telnum);n printf("================================\n");nn//6.总人数nvoid TOTAL()nn printf("================================\n");n printf("学生总人数:%d\n", total);n printf("================================\n");nn n//菜单函数nvoid Menu()nn char order;n printf("================================\n");n printf("| 1.添加学生. |\n");n printf("| 2.查询学生. |\n");n printf("| 3.编辑学生. |\n");n printf("| 4.删除学生. |\n");n printf("| 5.打印全部. |\n");n printf("| 6.总人数. |\n");n printf("| 7.退出. |\n");n printf("================================\n");n n order = getch();n system("cls");n n n switch (order)n n case '1':n ADD();n break;n case '2':n CHECK();n break;n case '3':n EDIT();n break;n case '4':n DELETE1();n break;n case '5':n PRINALL();n break;n case '6':n TOTAL();n break;n case '7':n bExit = 1;n break;n n while (!bExit)n n getch();n system("cls");n Menu();n nnvoid main()nn //创建链表头n Create(h);n pr = last = end = the_one = h;n the_one->next = NULL;n n Menu();n
指针数组 与 数组指针的分别?
各位大大, 偶是刚学习 C++ 的一个菜鸟,rn想问一下指针数组和数组指针的分别 以及它们的应用rn顺道问问, stack 和 heap 到底是啥? 它們与指针数组和数组指针有啥咪的关系?rnrnp.s.学习这门课已经死掉很多脑细胞了
关于php数组,如何显示元素本身字符?
$data['a']=1;rn$data['b']=2;rn$data['c']=3;rnrn我想显示:rnarnbrncrnrn不是要显示元素的值,而是要显示元素本身的字符
cout输出时的格式控制
//某医院想统计一下某项疾病的获得与否与年龄是否有关,需要对以前的诊断记录进行整理,按照0-18、19-35、36-60、61以上(含61)四个年龄段统计的患病人数占总患病人数的比例。 // //输入 //共2行,第一行为过往病人的数目n(0 &amp;lt; n &amp;lt;= 100),第二行为每个病人患病时的年龄。 //输出 //按照0-18、19-35、36-60、61以上(含61)四个年龄段输出该段...
xml输出时的编码问题
我输入文件的编码是gb2312,为什么输出是自动变成了utf-8,怎么改变输出的文件的编码?谢谢rnrn代码如下:rnSAXBuilder sax=new SAXBuilder();rnFileOutputStream outputFile=new FileOutputStream(outFileName);rnDocument doc=sax.build(inFileName);rnXMLOutputter output=new XMLOutputter("");rnoutput.output(doc,(OutputStream)outputFile);
输出时出现乱码!
我需要输出的是我输入的字符和字符数量和bye byern但是输出时总有一堆乱码怎么回事啊!rndata segmentrn buffer db 15 dup(?)rn exit1 db 'bye bye',13,10,'$' rn count db '0'rn container db 10 dup(?)rndata endsrnextra segmentrn numsign0 db '0'rn numsign9 db '9'rnextra ends rncode segmentrn ;main proc farrnassume cs:code,ds:data,es:extrarnstart:rn push dsrn sub ax,axrn push axrn mov ax,datarn mov ds,axrn mov ax,extrarn mov es,axrn lea bx,bufferrninput:rn mov ah,01hrn int 21hrn cmp al,'$'rn jz exitrn jnz judge_0rnjudge_0:rn ;lea di,numsign0rn cmp al,39hrn jl addsignrn jnl judge_9rnjudge_9:rn ;lea di,numsign9rn cmp al,30hrn jnl addsignrn jl inputrnaddsign:rn add count,1rn mov container,alrn mov [bx],alrn inc bxrn jmp inputrnexit:rn rn lea dx,[bx]rn mov ah,9rn int 21hrn lea dx,containerrn mov ah,9rn int 21hrn lea dx,exit1rn mov ah,9rn int 21hrn lea dx,countrn mov ah,9rn int 21h rn mov ah,4chrn int 21hrn ;retrn;main endprncode endsrn end startrn
怎样在输出时补零?
我从一个文件读出一串数字:1d05037ern想输出到另一个文件中去。rnrnfprintf(fstreamout,"CRC_32=%x%x%x%x \n",CRC_32[0],CRC_32[1],CRC_32[2],CRC_32[3]);rnrn可是出来却变成 1d537e rn05变成了5,03变成了3。rnrn请问该怎样输出?rn谢谢!rnrn附:用%0x不起作用。rn
输出时dreamweaver自动换行
怎样可以使Dreamweaver在我输出数据时自动换行呢?rn就是每5列就换行
输出时的精度问题
一. 浮点数输出时自动四舍五入: 情况1: double d=0.5; printf(&quot;.0lf\n&quot;,d); output: 1 情况2: double d=-0.5 printf(&quot;%.0lf\n&quot;,d); output: -1 二. ceil函数和floor函数: 1. 1)函数原型: double ceil( double arg ); ...
元素显示
详细介绍vue 2.x编程中的知识点,每节课一个知识点,包括过滤器、条件渲染、列表渲染、事件处理,class绑定、组件等等几十个知识点
输出时格式问题
本来是想看比较结果的,可是发现了一个新问题。rnclass CompStr rn public static void main(String[] args) rn compare("first", "first");rn compare("first", "second");rn compareInt();rn rn static void compare(String a,String b) rn System.out.println(a+"=="+b+": "+ a==b);rn System.out.println(a+"!="+b+": "+ a!=b);rn System.out.println(a+"="+b+": "+ a.equals(b));rn rnrnSystem.out.println(a+"!="+b+": "+ a!=b);rnSystem.out.println(a+"="+b+": "+ a.equals(b));rn输出时格式:只有最后一个才按格式输出,头两个只输出boolean值。why??rn
怎么在输出时格式化????????
在添加内容,如果有空格和分段,在直接输出却不能显示出来。rnrn怎么格式化一下,其内容在输出的时候和输入的时候一样,都有空格和分段。rnrn(备注:要在输出的时候格式化,不是在输入的时候)rnrn希望大家给我一个格式化的函数,谢谢~~~~~~~~~`````` :)
输出时写入CSS文件
需要引用一个CSS文件,想在页面生成中自动写入页面,可以实现么??——因为要写入页面的...中,不知道如何写入
怎样分别显示?
我的查询语句,要求将结果一行显示两个记录,怎样做?rnrnrn谢谢.请给个例子.
分别显示路径名和文件名
方式是: 设定了 private String fileSingleName; private String fileParent; 前者是文件名,后者是路径名。 然后传值时,传的还是fileName,但是显示时,显示的是这两项。DAOImpl中的fileSingleName是getName(),fileParent是getParent() fileName只承担了传递
多线程分别显示进度
多线程分别显示进度,任务栏显示总进度,进度完成后闪烁提示,这个程序仅仅是范例,平台为vs2013,附件包含x64可执行文件。
发表时间分别显示
timess 时间戳 //计算时间差 function timesshow(timess){ var time1=new Date(); //现在时间 var time2=new Date(timess); //结束时间 var time3=time1.getTime()-time2.getTime() //时间差的毫秒数 //计算出相差星期数 va
切换显示元素的原生js如何?
求助,想要制作两个按钮,点击一个能够显示一个class类别的元素,隐藏另一个class类别的元素。反之,点击另一个能显示之前隐藏的并且隐藏没有隐藏的class类别的元素。
如何控制html元素的显示?
比如其它的oop中,可视化对象大都有个visible属性,this.visible=false; 则该对象就不显示了,那么在html或是asp或是javascript怎么实现呢
显示主机地址显示主机地址 显示主机地址显示主机地址
显示主机地址显示主机地址显示主机地址显示主机地址显示主机地址显示主机地址显示主机地址显示主机地址显示主机地址
IE8如何显示html5元素
IE从IE9开始兼容html5,那么之前的浏览器如何显示html5元素呢? 方法有很多,个人感觉比较方便的是引入一个js库,用来做兼容: http://cdn.staticfile.org/html5shiv/r29/html5.min.js参考链接: http://www.jb51.net/html5/22826.html
文字超出时省略 显示...
样式: div{ overflow:hidden;     text-overflow:ellipsis;   white-space:nowrap; }
关于相反数输出时需要注意的问题
关于相反数输出时需要注意的问题 这是个简单的题目,解决这个问题有许多的方法,用条件判断的在这里就不说了 在这里我就是想提一下用再输入技巧上自己的一些感想。我原来一直就是喜欢用在格式控制字符前加一些符号来输出的,可是在做相反数的时候再用这样的方法做就大错特错了。因为在格式控制字符前加的符号不能被抵消掉;ORZ,现在才发现这个盲区,不知道聪明的你是不是也犯过这样的错误,如果有的话请记一下。 正确
地址显示地址ip
地址显示地址ip地址显示地址ip,大家可以试试 挺好用的
关于C语言输出时的自动换行
我要在屏幕上输出一个很长的字符串。在输出的时候,系统会自动进行换行,因为屏幕的宽度 够,我怎么样在它换行时输出一个tabrn
关于ASP下数据输出时排序问题:
自己想在显示数据时按数据最后更新的时间排序,但代码总也写不对,还请大家指点一下,rnrn自己写的错误代码为:rnrnSQL="Select * From data Where validate=true Order by vTime Desc"rn……rnrn但最后排序出的结果总是按ID顺序排序,rn'vTime 为时间/日期 字段,具体时间格式为"2003-12-16 22:48:32" 格式。
一个关于重载输出时友元的问题
为什么我在类中的重载<rn#include rn#include rnusing namespace std;rnrnclass Daternrn int year,month,day;rn void init();rnpublic:rn Date(const string& s);rn Date(int y=2000,int m=1,int d=1);rn bool isLeapYear() const;rn friend ostream& operator<<(ostream& o, const Date& d);rn;rnrnvoid Date::init()rnrn if(year>5000||year<1||month<1||month>12||day<1||day>31)rn exit(1);rnrnrnDate::Date(const string& s)rnrn year=atoi(s.substr(0,4).c_str());rn month=atoi(s.substr(5,2).c_str());rn day=atoi(s.substr(8,2).c_str());rn init();rnrnrnDate::Date(int y/* =2000 */,int m/* =1 */,int d/* =1 */)rnrn year=y;month=m;day=d;rn init();rnrnrnbool Date::isLeapYear() constrnrn return (year%4==0&&year%100)||year%400==0;rnrnrnostream& operator<<(ostream& o,const Date& d)rnrn o<
相关热词 c# 去空格去转义符 c#用户登录窗体代码 c# 流 c# linux 可视化 c# mvc 返回图片 c# 像素空间 c# 日期 最后一天 c#字典序排序 c# 截屏取色 c#中的哪些属于托管机制