void encrypt(char *message)
{
char c;
while (*message) {
*message=*message ^ 31;
message++;
}
}
比如我给message输入值i have a question。循环为什么会到最后结束呢?^ 31意义是什么呢?
求教555~~~
怎样解释下面这段定义的函数呢?while条件是指针,什么时候才就停止循环了呢?以及^ 31的意思
答案:2 悬赏:40 手机版
解决时间 2021-03-05 20:37
- 提问者网友:刺鸟
- 2021-03-05 13:07
最佳答案
- 五星知识达人网友:山君与见山
- 2021-03-05 13:24
首先,while的条件不是指针,*message是指针指向的值,是一个字符。也即是字符串的结束符'\0'.
31用16进制是 0x1F,也即是二进制的 11111, ^ 是异或操作,所以 *message^31的意思就是把*message这个字符的后5位取反。
31用16进制是 0x1F,也即是二进制的 11111, ^ 是异或操作,所以 *message^31的意思就是把*message这个字符的后5位取反。
全部回答
- 1楼网友:不如潦草
- 2021-03-05 13:33
执行fun(a,7);
p1=a
p2指向a[6] 即'g'
然后
s=*p1++= 'a'
p1自加指向a[1]
*p1=*p2-- = 'g'
a[1] = 'g'
p2->a[5]
a[5] = *p2 = s = 'a'
第二次循环
s=*p1++=a[1]='g'
p1->a[2]
a[2] = *p1 = *p2-- = a[5] = 'a'
p2->a[4]
a[4] = *p2 = s = 'g'
第三次循环
s=*p1++=a[2]='a'
p1->a[3]
a[3] = *p1 = *p2-- = a[4] = 'g'
p2->a[3]
a[3] = *p2 = s = 'a'
下一次判断时,p1和p2都指向a[3], p1
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯