c语言 *p++,*(s++)

[复制链接]
查看11 | 回复5 | 2018-6-22 15:44:31 | 显示全部楼层 |阅读模式
出现以上两种提示后,理论上就意味着你得换IE11了。可事实上并非如此,用过这款浏览器的用户都知道,在第一幅图的情况下,点击“在Microsoft Edge中继续进行”后,也能正常打开网页;而出现第二种情况后,只能手动通过点击Edge浏览器右上角的“…”,在菜单中选择“使用Internet Explorer打开”才可以。但是,如果你关闭了Edge浏览器的“Microsoft兼容性列表”,这项烦人的提示就再也不会出现,而且哪怕是第二种情况下无法打开的网页,也基本都能在Edge浏览器中正常打开。方法很简单,两步可以实现:1、在Edge浏览器地址栏输入about:config后回车;2、取消勾选第一项“使用Microsoft兼容性列表”...
回复

使用道具 举报

千问 | 2018-6-22 15:44:31 | 显示全部楼层
将指针*c的值赋给*p,然后p,s的地址前进一位。例如inta[10]={1,2,3,4,5,6,7,8,9,10};int*p=&a[1],s=&a[5];则执行*p++=*s++后,a[1]=6,*p=a[2]=3,*s=a[6]=7...
回复

使用道具 举报

千问 | 2018-6-22 15:44:31 | 显示全部楼层
这里的*p,很有意思了,先打印a的值,然后,p就指向自己了!这个p和p=(int*)&p效果一样了!a的值没变,*(s)更牛,也让自己指向p,同样两个表达式都是获得,p,s没自加前所指变量的值!VC6得到4,4的结果。*p和直接写*p的值相同,*(s)和直接写*s的结果也相同,只是效果不同,一个加了自增运算符,p,s两个指针的值,变了!都...
回复

使用道具 举报

千问 | 2018-6-22 15:44:31 | 显示全部楼层
*p++是等于4++,*(s++),s是a的内存地址,s++代表a的地址加2的地址所存储的内容,未知内容...
回复

使用道具 举报

千问 | 2018-6-22 15:44:31 | 显示全部楼层
*p++就是先取出指针p指向的地址单元的数据,之后再将该值加1。由于运算符 * 的优先级高于运算符 ++,所以是先取指针p指向的地址单元的数据。若果是*(s++),那么就是先将地址加1,之后取出新地址中的数据...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行