5.下面一段代码的分析:
int findvalue(int ar[],int n,int x )
{
int pos =-1;
for (int i=0;i<n;++i)
{
if (ar[i]==x) pos=i; break;
}
return pos;
}
这是一个好的C程序,此函数只有一个函数入口一个函数出口。 在for循环中:for(int i=0;i<n;++i)在这条语句中声明的int i=0。这个变量i属于块内变量,它的作用域是这个块内。超出折这个块这个变量是不具有可见性的。也是无分法使用这个变量的。
6.return是跳出当前函数,而return是跳出整个函数。
7.goto语句的跳转要向下跳转不能向上跳转,向上跳转很容易形成程序的死循环。goto语句只能在本函数块内跳,不成在两个函数块之间的跳转。
8.如果执行continue语句的话,continue之后的就不会执行。continue是跳转回去,跳转回的的位置是条件表达式的位置。
9.scanf对空格很敏感,它认为空格是输入结束的标志。
10.下面一段程序:
#define int int*
void main()
{
int p;
#undef int
int a=10;
p=&a;
}
分析:#define可以完成宏定义,宏定义使用完之后可以用#undef取消宏定义。
11.要多使用系统的库函数,可以增加代码的健壮性。便于代码在不同机子上的移植。例如下面一段代码:
#include<ctype.h>
{
char str[255];
gets -s (str,255);
int n=strlen (str);
for(int i=0;i<n;++i)
{
if(islower(str[i]))
{
str[i]=toupper(str[i]);
}
}
printf("%s\n",str);
}