鱼C论坛

 找回密码
 立即注册
查看: 3949|回复: 5

C指针和输出问题

[复制链接]
发表于 2012-11-16 22:02:49 | 显示全部楼层 |阅读模式
10鱼币
  1. #include<stdio.h>
  2. int main()
  3. {
  4. char a[]="123456789", *p;
  5. int i=0;
  6. p=a;
  7. while(*p)
  8. {if(i%2==0) *p='*';
  9. p++;i++;
  10. }
  11. put(a);
  12. return 0;
  13. }
复制代码
整个输出过程不是很明白!!求解释!!!
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-11-16 22:02:50 | 显示全部楼层
  1. #include<stdio.h>

  2. int main()
  3. {
  4.         char a[]="123456789", *p;
  5.         int i=0;
  6.         p=a;
  7.         while(*p)               
  8.         {
  9.                 if(i%2==0)        //这里判断你的字符串里面的元素除2求余为0的数  只有 1 3 5 7 9 这些数
  10.                 {
  11.                         *p='*'; //当这个判断条件成立的时候 就用 "*" 覆盖该元素
  12.                 }
  13.                 p++;         
  14.                 i++;
  15.         }
  16.         puts(a);                //输出数组用puts 函数 put(函数名); 输出新数组
  17.         return 0;
  18. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-11-16 22:57:09 | 显示全部楼层
程序中定义字符串数组char a[]="123456789", 实际a[ ]中有10个元素,除了1~9之外,系统自动加上一个字符串终止符' \0 ',' \0 '在ASCII中值为0,所以在while循环中,当p指针移动到最后一个元素符' \0 '时,自动跳出循环,完成对a[]的修改,最后通过puts函数输出整个a【】数组
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-11-17 00:24:47 | 显示全部楼层
  1. #include<stdio.h>
  2. int main()
  3. {
  4. char a[]="123456789", *p;
  5. int i=0;
  6. p=a;    //指针p指向数组a的第一个元素,改变*p即改变数组a的元素
  7. while(*p)   //若指针p指向的元素不是'\0',即第十个元素,则循环
  8. {if(i%2==0) *p='*';    /*第一次循环0除以2的余数等于0,则第一个元素变成'*',p++,i++后,第二次循环
  9. 1除以2的余数等于1,则不执行if语句,继续p++,i++。。。遇到i为偶数,即数组a元素为奇数时,更改数组元素为'*'  */
  10. p++;i++;
  11. }
  12. put(a);    //输出改变后的数组a
  13. return 0;
  14. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-11-17 10:49:18 | 显示全部楼层
2楼正解
顶上
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-11-17 13:18:55 | 显示全部楼层
实际上put应该改为puts
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-16 08:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表