视频里的例程是这样写程序源代码的:
#include <stdio.h>
void main()
{ char *s1,*s2 ,
str1[30]="BeiJing",str2[10]="China";
for(s1=str1;*s1!='\0';s1++);
for(s2=str2;*s2!='\0';)
*s1++=*s2++;
*s1='\0';
printf("%s\n",str1);}
=======================
我把例程的源代码改写和分析如下,如果分析错了,请高手指教!我将不胜感激!先说声谢谢啦!
/*指针发应用例程:将字符串str2复制连接到str后*/------->此注释是我自己添加的,为的是以后读程序能够知道程序的功能。
#include <stdio.h>
int main()
{ ------->(疑问1)花括号书写规范是不是应该单独占一行?
char str1[30]="BeiJing",str2[10]="China";------->(疑问2)按照自学考试教程的要求,定义指针前应该先定义要指向的
char *s1,*s2; 数据,所以我把字符串数组定义在先,指针定义在后,这样理解对吗?
for(s1=str1;*s1!='\0';s1++);------->(疑问3)这个for循环执行语句是个空语句,所以后直接以分号“;”结束,这样理解对
for(s2=str2;*s2!='\0';) 吗?
*(s1++)=*(s2++);-------->(疑问4)我觉得这样加上“()”书写比较清楚,表达的意义唯一,程序易读没有二意性,这样
*s1='\0'; 理解对吗?虽然程序运行正确,但是我觉得加上括号好像改变了上面例程里代码的意思!?
printf("%s\n",str1);
sleep(5000);
return 0;
}
|