llgd.net
当前位置:首页 >> n=n*8+*p%'0';这句是什么意思 >>

n=n*8+*p%'0';这句是什么意思

*p-'0'就是将字符变成数字,例如123 当 p指向1的时候,*p = '1' ,而‘1’-‘0’就是两者之间的ASCII码进行相减, 结果就是1了。 所以n = 0*8+1=1 n=1*8+2=10 n=10*8+3=83

字符可以转化为整数。。。 用ASCII转化 o对应112 那么,如果: n=8; *p=100; n=n*8+*p-'o'; 就是 8*8+100-112=52 所以n=5

'0' -- 字符 0 的 ASCII 值。 s[i] 如果是 是数字 字符,0,1,2,3,4,5,6,7,8,9, 减去字符 0 的 ASCII 值, 正好变成 整型量 (int) 0,1,2,3,4,5,6,7,8,9, 其它部分,相信你明白。

简单的看,就是8421码

个人理解是不行。以下是仿照上面进行的更改:(纯粹个人看法) int fun(char *p) { int n; n=*p-'0'; p++; while( *p!=NULL ) { n=n*8+*p-'0'; p++; } return n; }

p指向一个二进制字符串 *p是取一位数字 字符'1'的ascii值为49 , '0'是48,所以要做'0'运算 *p - '0' 是得到相应的数值即:字符‘1’变为1 字符 '0'变为0 n的初值是0 n先乘2,即把原先的值先扩大2倍,然后,再加上相应位的值,这样就可以得到最终...

D p是指针q是指向批针的指针,记录的是地址多翻下书这不太好理解

n是变量,p是指向变量n的指针,至于q是指针的指针。 *p表示引用指针所指向的存储单元,即等价于n,所以*p=5等价于n=5... q指向p,*q等价于p,所以**q等价于n。。。

当s的初值不需要保留时,完全可以用s。这个代码中最后没有用到s的初值,所以完全没有必要另外声明p。

#includeusing namespace std;int main(){char *p,a[10];int n=0;p=a;gets(p);while(*p!='\0') //结束标记{ n=n*10+*p-'0'...

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