C语言菜鸟求教:while(*t++)中*t++如何理解,是*(t++)吗?可是*和++优先级一样呀?

作者&投稿:鄂耐 (若有异议请与网页底部的电邮联系)
c语言中*t++ 和(*t)++分别代表什么~

*t++其实就是*(t++),先取*t,然后t这个指针再后移一位。
(*t)++就是先取*t,把*t这个值再++,就是*t这个值自增1。
*t++是取值后指针自增,(*t)++是取值后把取出来的值自增。

C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。
它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。

因为, C它是. 如果s指向的变量为0, 那*s, 就是假.那么*s++=*t++就不会执行.

但是, while(*s++=*t++)它是先把t自加后的值(不清楚是先自加还是先取值), 然后赋给*s++, 那么*s的值就是*t++的值了, 所以while是否循环取决于*t++的值.
而while(*s)它明显是取决于*s

再看C,

do while是必然先执行的, 然后再判断是否继续循环, 所以这时*s++就等于*t++了

*与++运算符优先级相同,且都是从右往左结合。
对于*t++,可以这样理解(本人拙见,非官方,非权威),先t与*结合,结果是取值,等同于*t,因为++是后置的,所以再与++结合,结果是指针增1,等同于t++。那么*t++的意思是,先取值,后更新指针。

这个要看编译器,不同编译器的结合方向会不同,

如果编译器的结合方向是从左往右结合,那么*t++相当于(*t)++;

如果编译器的结合方向是从右往左结合,那么*t++相当于*(t++);

我们实际运用当中,一般要看自己的需求,遇到这种情况根据自己的需求把括号加上去,这样可以增加可读性,同时也避免因为编译器的不同导致产生不同的结果;

如果你看的是考试的题目,这个只能死记了,多留意一些往年类似的题目,看它考的题目以及答案是按照编译器从哪个方向编译的,然后在进行作答。

优先级相同的情况下还要看结合性,这两个操作符的结合性是从右往左的,意思是:如果一个操作数两边的操作符优先级相同,那么先与右边的结合,所以*t++就是*(t++)

*和++是右结合的


本人新手想玩剑网3对万花,藏剑和纯阳犹豫中,请玩过的人推荐一下。本人...
HH万年不这么给力 有点WOW SS以前的感觉 全世界很缺 藏剑 花时间去练的话 灰常给力 就是金黄色 小黄鸡 纯阳 这么说呢 很帅 打菜鸟能给力(貌似所有职业都一样) 高端JJC 需要剑纯控场 气纯 真心给力不上 用的好 貌似很强 但是 被压 完全无作为 不过3个都有需求 看你像要什么了 坚持下去都...

excel如何建立多列下拉菜单对应选择
1、制作多级下拉列表。具体方法如下:首先设计如图所示的下拉列表内容,在此只是为了讲解的需要。2、然后针对某一个二级下拉列表,在“名称框”输入对应一级下拉列表的名称,如图:3、接着利用同样的方法创建一级下拉列表,完成后,就可以创建二级下拉列表啦。注意:二级列表中的部分名称应包括在一级列表中...

这是什么?请过来帮忙解答___雅虎助手说是病毒
当然,不止是VisualBasic,象Delphi.VisualC++等其他程式设计语言也可以通过呼叫外部命令的方法来使用Run...如rundll32.exe shell32.dll,Control_RunDLL,取代了冗长的“开始→设置→控制面板”,作为菜鸟的我们...请马上卸载雅虎助手,别用他自带的卸载程序,否则和没卸载根本没有区别,上http:\/\/www.fengrun.net\/wh...

梦幻西游怎样隐藏IP
最近有很多朋友都在问这样能够通过几部简单操作就能隐藏IP(因为直接通过Windows隐藏IP还要查端口、查哪个IP能用,哪个不能用,很麻烦,对于菜鸟来说还很难) 今天,我终于找到了简单隐藏IP的工具---IDHIDE http:\/\/mumayi1.999kb.com\/pic\/2006-11-04\/5z0whfoyhp68s3gn1z72.RAR 只要打开,就能...

帮忙看下是不是翻新机啊,到底是哪里的机子?明明显示国行,可是运营商却...
序列号:DQGMD21DDTWH 型号:MD300CH\/A 设备型号:iPhone 5 32GB 白色(GSM)—A1429 出厂时间:2014年03月09日-2014年03月15日 销售地:中国 运营商:中国联通 产地:中国 置换机:是 是否有锁:无锁 购买时间:2014年09月25日 激活状态:已激活(2014年09月25日)电话技术支持:已过期 硬件保修截止...

笔记本液晶屏型号,LP156WH4(tl)(a1)中的wh4,tl ,a1分别代表什么意思...
这就是个15.6 的普通LED 啊,和LP156WH2可以通用的,还有别的型号也通用 B156XW02 LTN156AT02 HT156WXB LP开头 是LG的 LTN开头 是三星的 B开头 是AUO友达的 HT开头 京东方 HSD开头是瀚彩 CLAA开头是中华 N开头是奇美

剑网3 pvp野外什么职业好……另外求分析下CJ JC QC WH 这四个职业
1.先说剑纯,剑纯野外是最弱的,没有之一,他在野外完全没有先手,而且得插气场,野外剑纯插气场之后引一群小怪追你,很蛋疼。而且机动性很差。但是竞技场确实比较强。2.万花切磋很强,能回血,但是非常需要操作,必须要利用小轻功和门派轻功躲控制技能。高手万花是神,但是菜鸟万花也很多。总体...

我的手机N97mini到底是RM555还是RM505
最高支持16GB 查看手机报价 手机铃声 支持MP3及和弦铃声 标配 锂电池(BL-4D,1200mAh) 充电器(AC-10) 数据线(CA-101) 音乐耳机(WH-701) 移动支架(CR-117) 车载充电器(DC-6) 用户手册 显示屏幕 手机屏幕 3.2英寸 主屏颜色 1677万色 主屏分辨率 360×640像素 主屏类型 TFT ...

求教关于安阳或者豫北的历史典故,谢谢了
它的基本词汇、基本语法、基本字形结构跟后代汉语言文字是一致的。用许慎六书来检查,在字形结构方面指事、象形、形声、会意皆已齐备;在文义使用上转注(互训,即义近通用)、假借(音近通用)也都很清楚。甲骨文可以断代,早晚分明,从某些常用字的变化可以领会许多中国文字发展的知识。例如:①简化,...

求教剑三55竞技场
这里,我将从双奶55和单奶55这2个方面来说55。特别说下,个人觉得,如果你的队友不是很犀利,或者没怎么配合过,集火能力不行,打双奶队会舒服很多,如果你一定要带4DPS,打单奶,那么,QC要么不带,要么就要比较犀利的。1.双奶的选择 我们说的双奶,一般是7X+WH或者7X+WD(7X+7X我也打过,...

铜鼓县18778159391: C语言中while(*t++)什么意思?还有 int aaa(char *s) {char *t=s; while (*t++);t -- ; return (t - s)... -
攸曹冠心: int aaa(char *s) { char *t=s; while (*t++); 判断*t的值: 1,如果不为0,则继续while循环,执行t++,指针指向下一个 2,如果为0,跳出while循环,执行t++,指针指向下一个t--; return (t-s); }比如数组char temp[] = {1, 2, 3, 4, 5, 6, 7, 0, 8, 9}; 执行...

铜鼓县18778159391: C语言菜鸟求教:while(*t++)中*t++如何理解,是*(t++)吗?可是*和++优先级一样呀? -
攸曹冠心: *与++运算符优先级相同,且都是从右往左结合.对于*t++,可以这样理解(本人拙见,非官方,非权威),先t与*结合,结果是取值,等同于*t,因为++是后置的,所以再与++结合,结果是指针增1,等同于t++.那么*t++的意思是,先取值,后更新指针.

铜鼓县18778159391: C语言while(*t++ )什么时候跳出循环,以及函数如何计算s所指字符串长度? -
攸曹冠心: while(*t++); 相当于 while(*t++ != 0 ); 即当*t不为0时循环!字符串结束符是\0, 按数值来说就是0

铜鼓县18778159391: C语言,while(*t)t++; t -- ;这句表示什么 -
攸曹冠心: 可以改为形如: while (*t) {t++;} t--; 那么可以看到,如果t指向的内容(数据)不为0(NULL),那么执行循环,t++,t的指向下一个指针;如果下一个的内容(数据)不为0(NULL),则继续执行循环...... 如果下一个的内容(数据)为0(NULL),则跳出循环,执行t--.到此结束该段代码,继续往下执行. 啊,感觉语言还是挺难简单描述的.

铜鼓县18778159391: c语言中while(t)是啥意思 -
攸曹冠心: while()是循环语句,t是判断条件,当t为真或非0的话,执行循环,否则退出循环,比如t=1,循环会持续执行,t=0则退出循环,或者 t 可以是其他判断语句,满足ture时执行循环,为false则退出循环

铜鼓县18778159391: c语言中,while(*tt!='\0')是什么意思? -
攸曹冠心: 这个需要完整的代码吧? *tt因该是定义的指针吧,而'\0'一般指的是字符串的内存结尾.所以这句话的意思是while判断*tt所指的字符串是不是为空,如果为空,不执行循环语句.不为空则执行.

铜鼓县18778159391: C语言 while(*t++)为什么能跳出循环? -
攸曹冠心: *t是一个char类型指针,有长度范围,到了一定程度就会数据溢出,然后*t就会小于0,然后不停的++,总有等于0的时候,也就是循环跳出的时候

铜鼓县18778159391: while((*t++=*s++)!=0)在c语言中的意思
攸曹冠心: 从句法上分析,先将*s 的值赋给*t 因为赋值表达式的值为左边的值,所以接下来判断*t != 0.最后再执行*t++, *s++.

铜鼓县18778159391: c语言中 while(t -- ) -
攸曹冠心: t--是自减运算,是每次t自身减1 while(t--)就是当t自身减到0就退出循环.

铜鼓县18778159391: 有一提C语言问题,求解,谢谢了 -
攸曹冠心: 举个例子: “abcd", 后边其实有一个 '\0'.占用内存5个字节,字符串长度4.s 指向 'a't 指向 '\0'你算算

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网