您的位置:首页 > 编程语言 > C语言/C++

c语言程序结构,全局变量,局部变量

2016-07-23 00:19 316 查看
c语言程序结构:

//
// main.c
// ProgrameStructDemo2
//
// Created by 千 on 16/7/23.
// Copyright © 2016年 kodulf. All rights reserved.
//

/*文件包含指令*/
#include <stdio.h>
/*宏定义*/
#define TRUE 1
#define FALSE 0

/*类型定义*/
typedef int BOOL;
typedef struct{
int age;
char name[10];
}Person;
/*全局变量*/
int global=100;
/*函数原型声明*/
int sum(int,int);
int avg(int,int);

/*主函数*/
int main(int argc, const char * argv[]) {
// insert code here...
printf("Hello, World!\n");
return 0;
}

/*函数定义*/
int sum(int a, int b){
return a+b;
}

int avg(int a,int b){
return (a+b)/2;
}


作用域---》片警

局部变量磨人的就是自动存储期限,其实就是指的是java 里面的局部变量使用完了就就出栈了

全局变量默认的就是静态存储期限,其实就是java中的静态变量
局部变量也可以声明为静态存储期限的static,就是说初始化只要一次,第二次用的时候不需要初始化了。

//
// main.c
// ProgrameStructDemo
//
// Created by 千 on 16/7/22.
// Copyright © 2016年 kodulf. All rights reserved.
//
/*
局部变量磨人的就是自动存储期限,其实就是指的是java 里面的局部变量使用完了就就出栈了
全局变量默认的就是静态存储期限,其实就是java中的静态变量
局部变量也可以声明为静态存储期限的static,就是说初始化只要一次,第二次用的时候不需要初始化了。
*/

#include <stdio.h>

//作用域---》片警

//g,k,age就是全局变量,当前文件中都可以访问,include 进来都是可以的
//全局变量要谨慎使用,多线程访问时的程序同步也是个问题

int g;
int k;
int age;

//局部变量有自动存储期限,调用完了立刻清楚,函数调用的时候分配内存,调用结束立刻释放
//a,b,temp为局部变量
int max(int a,int b){
int temp;
temp = a>b?a:b;
return temp;
}

//如果局部变量前面加了static ,该变量由自动存储期限变为静态存储期限,那么这个变量在程序结束的时候才释放
//静态存储期限:一旦定义一直存在,直到程序结束

int min(int a,int b){
//只初始化一次。第二次调用时候,默认的就不进行初始化了,(注意作用域是没有变的,还是局部变量)
static int temp[]={1,2,3,4,5};

return temp[0];
}

//当局部变量和全局变量相同的时候,就近原则,就是使用局部变量
int jj=100;
void f(int jj){
printf("jj=%d\n",jj);
}

int main(int argc, const char * argv[]) {
// insert code here...
printf("Hello, World!\n");
//当局部变量和全局变量相同的时候,就近原则,就是使用局部变量
f(1111111);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: