|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 kuschzzp 于 2019-12-3 18:15 编辑
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- void sub(char* ,char );
- int main()
- {
- char s[]="97531",c;
- c=getchar();
- sub(s,c);puts(s); // 我在运行时输入6
- return 0;
- }
- void sub(char *a,char b)
- {
- while(*(a++)!='\0') ; //这里我理解的是: 将指针 指向最后一个元素
-
- while(*(a-1)<b) //这里我我的理解是: 将指针前移一位,和b比较,如果比b小,就做下面的
- *(a--)=*(a-1); //就是这边不太理解了 ,说一说我的片面理解吧: 将刚才指针前移一位指向的值,赋值给数组第一个元素,然后a--就是指针指向倒数第二个元素
- *(a--)=b; // 这最后一步就感觉奇怪了,前面有分号,说明不是while循环里的,最后一步把b的值给*(a--),此时这个*(a--) 我觉得应该是指向的7,就是替换掉7吧,但运行结果有7
- }
复制代码
我以为替换掉7,结果7还出现了2个。。。。。。。
运行结果如下:
6
9767531
--------------------------------
Process exited after 4.754 seconds with return value 0
请按任意键继续. . .
还没说完
地址没变把里面的值给换了
相当于往里面插了个数
|
评分
-
查看全部评分
|