为了账号安全,请及时绑定邮箱和手机立即绑定

精通c,指针大神请出来,有点有意思的东西喔(其实好ew)

精通c,指针大神请出来,有点有意思的东西喔(其实好ew)

C
冯宝宝 2017-11-19 22:46:20
一段异常ew的代码, #include<stdio.h>#include<string.h>int main( void ){    char* s="1101";//13    char* p=s+strlen(s);      unsigned i=0;    unsigned num=0;    while (p-->s)        num^=!(*p^'1')<<i++;    printf("----");    printf("%u\n",num);    return 0;}这个是把二进制转换为10进制 的代码。。。。。。。。。。。。。至于为什么写成这个样子,不是我写滴。。。为了考我这样不会指针的人类吧。首先 char* p=s+strlen(s);为什么p指针的内容和s指针的内容就一样了,(指针学得很不好求解答下)但是用编译器输出p,得到的是null,可以理解为这个时候的p指向的是字符串结束标志'\0'么,然后while (p-->s)其实是while((p--)>s)【这样分开稍微好理解一点,】这里,p--怎么理解呢,这个字符串p倒着输出么。跪求解答啊,后面涉及位运算的,大神随意,那个不是很想知道。谢谢(如果有人的话,应该有吧)
查看完整描述

1 回答

?
冯宝宝

TA贡献31条经验 获得超8个赞

  1. 指针没有学好,痛苦,因为字符串和整数相加,偏移,指针,,,,,,去学指针吧,人类们

查看完整回答
反对 回复 2018-02-02
  • 1 回答
  • 1 关注
  • 1167 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信