本文目录一览:
- 1、C语言的函数嵌套调用与函数递归调用有啥区别?
- 2、C语言中三个if语句的嵌套怎理解
- 3、C语言switch-case嵌套
- 4、C语言中的“嵌套”是什么意思
- 5、求教c语言的嵌套
- 6、c语言中for语句的嵌套怎样理解
C语言的函数嵌套调用与函数递归调用有啥区别?
需要明白的是
函数嵌套是语言特性,递归调用是逻辑思想。
函数嵌套允许在一个函数中调用另外一个函数,比如有三个函数
funca()
{
funcb();
}
funcb()
{
funcc();
}
funcc()
{
cout "Hello" endl;
}
这个就叫做嵌套调用,它是一个语言提供的程序设计的方法,也就是语言的特性。
而递归是一种解决方案,一种思想,将一个大工作分为逐渐减小的小工作,比如说一个和尚要搬50块石头,他想,只要先搬走49块,那剩下的一块就能搬完了,然后考虑那49块,只要先搬走48块,那剩下的一块就能搬完了……,递归是一种思想,只不过在程序中,就是依靠函数嵌套这个特性来实现了。
递归最明显的特点就是,自己调用自己(不就嵌套调用了嘛)。
funca()
{
if(statement1)
funca();
else
exit(0);
}
概括说,函数嵌套就是函数调用函数,是普遍的,递归就是函数调用自身,使函数嵌套的一个特例。
我说的不知道明不明白,有点乱……
C语言中三个if语句的嵌套怎理解
严格按照if语句的格式来看待if语句,可以在条件执行体语句上外包大括号以便区别:
if
(
条件
)
语句;
//语句也可以是:{
语句;语句;...;语句;
}
if
(
条件
)
语句;
else
语句;
//语句也可以是:{
语句;语句;...;语句;
}
如果在嵌套的if语句中出现else,编译器会自动向前找到最近的那个if完成一个完整的if...else
...语句;你也可以在遇到else后找到这个结构然后用大括号将它们括起来表示这是一条if语句,省得混淆,比如:
if
(
A
)
if
(
B
)
else
语句A;
else
语句B;
可以看成:if
(
A
)
{
if
(
B
)
else
语句A;
}
else
语句B;
其中嵌套的if语句可以看成一条语句,基本结构是:
if
(
A
)
语句C;
else
语句B;
其中语句C是一条if语句:if
(
B
)
else
语句A;
C语言switch-case嵌套
输出@#
void
main()
{
int
a=2,b=7,c=5;
switch(a0)//判断是真(a0)继续执行
{
case
1:switch(b10)//判断为真(b=710)继续执行(逻辑真为1,假为0)
{
case
1:printf("@");break;//输出@
遇到break跳出case1
case
0:printf("!");break;
}
case
0:switch(c==5)//判断为真(c==5)继续
{
case
0:printf("*");break;//0表示逻辑假跳为下一句
case
1:printf("#");break;//输出#
遇到break跳出case2
default:printf("%%");break;
}
default:printf("");//default在大括号外不受case1
case2影响继续执行输出
}
printf("\n");//输出回车
}
C语言中的“嵌套”是什么意思
就是在一个语句的内部,含有一个或更多的同种语句。
例如:
if(条件1)
{if(条件2)....;}
例如:
for(i=0;i5;i++)
{for(j=0;j10;j++)
....;
}
求教c语言的嵌套
printf("请输入a的值");
scanf("%d",a);
if(a10)//a=0的时候,明显符合a10条件,但是不符合里面嵌套的a1条件,不做任何操作。
{
if(a1)
t=1;
}
else t=2;
printf("请输入a的值");
scanf("%d",a);
if(a10)//a=100,第一步验证就不符合条件,又没有else语句对应,也是什么都不做
{
if(a1)
t=1;
else t=2;
}
我还是加上第二题的实战图吧:
我初始化t为99999了,防止输出未初始化的变量。可以看到99999并没有改变。也就是说a=100的时候,没有影响到t。不要看死书了,按自己的逻辑理解吧。
总之看if 的嵌套,else总是与最近的if成对。然后自己加大括号对好格式,用手写在纸上画明了一点。希望能帮到你!
c语言中for语句的嵌套怎样理解
所谓for语句的嵌套就是多层for循环的使用,
举个二维数组赋值的例子,
int
a[3][4];
//定义一个3行4列的二维数组
int
i;
//用来控制行
int
j;
//用来控制列
int
tmp=1;
for(i=0;i3;i++)
//该循环就是第一层循环,用来控制行号
{
for(j=0;i4;j++)
//该循环就是第二层循环,用来控制列号
{
a[i][j]=tmp++;
}
}
//到这里就实现了二维数组的赋值操作