++ptr什么意思 *(++ptr)=0

2025-02-23 05:30:04
推荐回答(3个)
回答1:

++ptr就是将ptr所指的地址移动一个单位(一个单位取决于您声明的是哪种类型)!*(++ptr)=0
就是将ptr所指对象的下一个对象的值赋为零。
举个例子如
char ch[]="abc";
char ptr;
ptr=ch; //ptr指向ch数组的起始地址
++ptr; //ptr指向ch[1]的地址,该语句等价于ptr=&ch[1]
printf("%c",*ptr); //进行验证
*(++ptr)=’0‘; //由于上一个++ptr已经指向ch[1]了,所以该语句等价于ch[2]=‘0’; 总之*ptr表示ptr指向地址里存放的值!
值得注意的是指针很容易越界,比如上面的例子如果直接访问*(ptr+4)就会发生错误,输出可能是乱码或者其他的,因为最多只能访问到ptr+2,如果您对越界的值进行修改,而且越界的又是系统或其程序的关键值,可能导致系统或其他程序的运行错误!不过只要注意一点,指针可以做很多是,很灵活!!

回答2:

ptr应该是一个指针。。++ptr就是把指针往后移一位 *(++ptr) 就是往后移了一位后ptr所指的内容赋值为0

回答3:

就是PTR先加1再执行下个操作~