指针06 – 零基础入门学习C语言46

第八章:指针06

让编程改变世界

Change the world by program

字符指针作函数参数

出错了:关于a[]和*a的一些区别!

include

void  main()

{

      void copy_string( char from, char to );

      char *a = "I am a teacher.";

      char b[] = "You are a student."; //此处应该定义为char b[] = "You are a student.";

                                       //区别两者反汇编代码并解释其意义

                                       //谈谈五个区!

      printf("String a = %snString b = %sn", a, b);

      printf("copy string a to string b:n");

      copy_string(a, b);

      printf("nString a = %snString b = %sn", a, b);

}

void  copy_string( char from, char to )

{

      for( ; *from != '?'; from++,to++)

      {

            to = from;

      }

      *to = '?';

}

优化:对 copy_string 函数还可作简化

方法一

include

void  main()

{

      void copy_string( char from, char to );

      char *a = "I am a teacher.";

      char b[] = "You are a student.";

      printf("String a = %snString b = %sn", a, b);

      printf("copy string a to string b:n");

      copy_string(a, b);

      printf("nString a = %snString b = %sn", a, b);

}

void  copy_string( char from, char to )

{

      while( (to = from) != '?' )

      {

            to++;

            from++;

      }

}

方法二

include

void  main()

{

      void copy_string( char from, char to );

      char *a = "I am a teacher.";

      char b[] = "You are a student.";

      printf("String a = %snString b = %sn", a, b);

      printf("copy string a to string b:n");

      copy_string(a, b);

      printf("nString a = %snString b = %sn", a, b);

}

void  copy_string( char from, char to )

{

      while( (to++ = from++) != '?')

      {

            ;

      }

}

方法三

include

void  main()

{

      void copy_string( char from, char to );

      char *a = "I am a teacher.";

      char b[] = "You are a student.";

      printf("String a = %snString b = %sn", a, b);

      printf("copy string a to string b:n");

      copy_string(a, b);

      printf("nString a = %snString b = %sn", a, b);

}

void  copy_string( char from, char to )

{

      while( *from != '?' )

      {

            to++ = from++;

      }

      *to = '?';

}

方法四

include

void  main()

{

      void copy_string( char from, char to );

      char *a = "I am a teacher.";

      char b[] = "You are a student.";

      printf("String a = %snString b = %sn", a, b);

      printf("copy string a to string b:n");

      copy_string(a, b);

      printf("nString a = %snString b = %sn", a, b);

}

void  copy_string( char from, char to )

{

      while( to++ = from++ )

      {

            ;    // '?' == 0

      }

}

方法五

include

void  main()

{

      void copy_string( char from, char to );

      char *a = "I am a teacher.";

      char b[] = "You are a student.";

      printf("String a = %snString b = %sn", a, b);

      printf("copy string a to string b:n");

      copy_string(a, b);

      printf("nString a = %snString b = %sn", a, b);

}

void  copy_string( char from, char to )

{

      for( ; to++ = from++; )

      {

            ;

      }

}

方法六

include

void  main()

{

      void copy_string( char from, char to );

      char *a = "I am a teacher.";

      char b[] = "You are a student.";

      printf("String a = %snString b = %sn", a, b);

      printf("copy string a to string b:n");

      copy_string(a, b);

      printf("nString a = %snString b = %sn", a, b);

}

void  copy_string( char from[], char to[] )

{

      char p1, p2;

      p1 = from;

      p2 = to;

      while( (p2++ = p1++) != '?' )

      {

            ;

      }

}

视频下载
技术, IT技术, 视频教程, C语言

原文发布于宽客论坛,点击阅读原文

风险提示及免责条款

市场有风险,投资需谨慎。本文不构成个人投资建议,也未考虑到个别用户特殊的投资目标、财务状况或需要。用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部