牛骨文教育服务平台(让学习变的简单)
博文笔记

C语言for循环break语句

创建时间:2017-03-03 投稿人: 浏览次数:3280
#include <stdio.h>

int main() {
int m=0;
for(int j=0;j<10;j++)
{
    for(int i=0;i<10;i++)
    {

            m++;
            break;




    }
}
    printf("m=%d",m);

    printf("Hello, World!
");
    return 0;
}
/home/andrew/文档/Clion/untitled4/cmake-build-debug/untitled4
m=10Hello, World!

Process finished with exit code 0

总结一下,在循环中的break语句,无论有多少层for循环,break语句永远只跳出自己所在那一层循环,即写在那一层循环就跳出那一层循环。
注意静态变量与C++中的常变量的区别,静态变量的作用是在局部函数中定义一个全局变量,

#include <stdio.h>
//#include <string.h>
int fun()
{
    static int  x=1;
    x*=2;
    return x;

}
int main()
{
   int i,s=1;
    for(i=1;i<=3;i++)s*=fun();

    printf("k=%d
",s);



}
E:Clion_filepro.1cmake-build-debugpro_1.exe
k=64

Process finished with exit code 0

static int x=1;虽然在局部函数中进行定义的,但是一旦声明为static型的变量,x就会相当于全局变量,知道函数结束才进行内存单元的释放。

39有以下程序: 

#include <stdio.h>
#include <stdlib.h> 
main()
{ 
int *a,*b,*c;
a=b=c=(int *)malloc(sizeof(int));
*a=1;*b=2,*c=3; 
a=b;
printf("%d,%d,%d
",*a,*b,*c);
} 
程序运行后的输出结果是(  )。
1,1,3

2,2,3

1,2,3 

3,3,3

正确答案:D
答疑:【解析】malloc函数动态分配一个整型的内存空间,然后把函数返回的地址用(int*)强制类型转换为整型指针,再把它赋给a,b,c,即让指针变量a,b,c都指向刚申请的内存空间。所以只有最后一个赋值语句*c=3的值保留在了该空间内,因为a,b,c三个指针变量均指向该空间,所以打印该空间内的数值为3。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。