2280537.com
当前位置:首页 >> C语言,(*q)++和q++有什么不同 >>

C语言,(*q)++和q++有什么不同

C编译器认为*和++是同优先级操作符,且都是从右至左结合的。由于()的优先级比*和++都高,所以(*q)++中的++就作用在(*q)上(即q指向的目标上)了;q++中的++作用在指针q上而与q指向的目标无关。比如有: int x,a[]={1,2,3,4,5},*q=a; x=(*q)++;//执...

双目运算符“++”的运算级别是高于“*”的,所以先执行++。 那两楼都说的不够详细,还要看指针变量p和q的类型,比如说是int类型(占四个字节) 假设q存储的地址是100,那执行q++后所指向的地址就是104(并不是101,要注意这一点)(p++类似,不再说...

内存知道吗?内存容量用字节表示,叫内存单元,每个字节有一个地址,下面x就表示这个内存单位的名字,内存单元的值就是x的值;内存单元的地址就是下面的p;意思就是说一个代表的是内存单元的数据,一个代表内存单元的地址。够明白了吧 int x; x...

当q指向一个字符串的首地址以后,再执行: while ( *q ) q++; 时,q就不停地后移,直到指向串尾符'\0'时退出循环。 q--;则 q 指针后移一位,指向字符串本身的最后一个字符。 例如,开始时q指向字符串"Good morning!" 则 while ( *q ) q++; q--; ...

q是字符串的指针地址, 这是循环判断字符串指针是否结束, 如果没有结束,就指针地址+1

这是个赋值表达式。"q++"是把q指针变量所指向的内存空间地址自加一个“内存单元”(如果这个指针变量的类型是int类型,那么q自加“一个内存单元”就是增加两个字节),取当前所指内存中的数值(即是,*q++)存储给P当前所指向的内存地址空间,再自加一...

*表示这是一个指针,q和P都是指针变量,里面存放的数据一般情况下是一个地址。 如果你定义了一个变量如: char a; 那么系统会分配给这个a一个房间来存储char型的变量,这个变量(房间)很显然是有地址的(门牌号),不然你就找不到这个房间了。 如...

要不要分号要具体看while()后面有没有“体”,不能一概而论。从这里的情况看()不应该有“体”,所以()后得有分号。 在while(*q++=*p++)后加一个分号写成while(*q++=*p++);,二者就是等价的。 与while(*p!='\0') *q++=*p++;是不等价的:前二者把'\0'...

p++的运算符优先级大于*p,但是p++是先取p的值,所以 你可以理解为*p++的值是*p,但是执行完之后,p=p+1 所以*p++ = *q的意思是 *p= *q; p=p+1;

for(p=a, q=b;*p&&*q&&*p==*q;q++,p++) 这是一个循环,你还少写个逗号呢,我在上面添上了。而且感觉你还有个地方应该是分号,你写成逗号了。如果我改的不对,请补充问题。 首先“p=a, q=b”是赋初值,就是开始循环时q,p的初始值。 然后“*p&&*q&&*p...

网站首页 | 网站地图
All rights reserved Powered by www.2280537.com
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。