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;
}
//
// 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;
}
相关文章推荐
- 李洪强漫谈iOS开发[C语言-016]-变量的作用域
- C语言学习-结构体
- 李洪强漫谈iOS开发[C语言-015]-变量的使用
- C语言基础知识
- 合并两个排序的链表 C++
- VC封装Ping命令的实现
- C++修炼之路 map
- <C++略识>之多态和虚函数
- ARM汇编与C语言混合编程之汇编调用C函数
- C++基础知识点
- 《C++Primer》读书笔记之---Windows下通过命令行窗口编译运行C++程序的尝试
- C语言变量和变量属性
- c++ 类 占用内存 相关问题
- C++11 中的右值引用与转移语义
- C/C++面试问题汇总
- <C++略识>之多重继承、多继承、虚继承
- 我的C语言笔记1
- 23 DesignPatterns学习笔记:C++语言实现 --- 2.5 Factory
- 翻转链表
- 对于拷贝构造函数和赋值构造函数的理解