黑马程序员------c.全局变量

                                             -----------android培训、java培训、java学习型技术博客、期待与您交流!------------

                                                                                              全局变量
一.概述
          全局变量也称为 外部变量 ,它是在函数外部定义的变量。 它不属于哪一个函数,它属于一个源程序文件。其作用域是整个源程序。在函数中使用全局变量,一般应作全局变量说明。 只有在函数内经过说明的全局变量才能使用。 但在一个函数之前定义的全局变量,在该函数内使用可不再加以说明
  1.定义:在函数外面定义的变量
  2.作用域:从定义变量的那一行到文件结尾
  3.生命周期;程序启动分配存储空间到结束销毁
  4.默认的初始值为0
1>结构体
可以由多个不同类型的数据构成
定义结构体类型
struct Student    //声明一个结构体类型Student
{
int num;/            /包括一个整型变量num
char name[20];//包括一个字符数组name,可以容纳20个字符
char sex;          //包括一个字符变量sex
int age;            //包括一个整型变量age 
float score;      //包括一个单精度型变量
char addr[30]; //包括一个字符数组addr,可以容纳30个字符
};
这样, 程序设计 者就声明了一个新的结构体类型Student(struct是声明结构体类型时所必须使用的 关键字 ,不能省略),它向 编译系统 声明: 这是一种结构体类型,它包括num, name, sex, age, score, addr等不同类型的数据项。应当说明Student是一个 类型名 ,它和系统提供的标准类型(如int、char、float、double 一样,都可以用来定义变量。
                                                                                        2>定义结构体的三种方式
1.先定义类型再定义变量
struct student;
{
int age;
}
struct student stu;
2.定义类型的同时定义变量
truct student stu;
{
int age;
}stu;
struct student stu2;
3. 定义类型的同时定义变量(省略类型名称)
struct
{
int age;
}stu;
<span style="background-color: rgb(255, 255, 255);">                                                                                                   3>定义结构体数组</span>
1.结构体可以由多个不同的数据类型构成
定义结构体类型
struct person
int age;
double height;
char *name
2.根据结构体类型定义结构体变量
struct person p ={20,1.55,"jack"};
p age = 30;
p name =- "rose";
补齐算法     结构体所占用的存储空间必须是最大成员字节数的倍数
struct student
{
int age;
char *name;
}
struct student stu;
stu age = 20;
stu name ="jack";
3.定义结构体类型,利用新定义好的类型来定义结构体变量
struct student
{
int age;
double height;
char *name;
}stu
struct student sstu
定义结构体 数组 和定义结构体 变量 的方法相仿,定义结构体数组时只需声明其为数组即可。如
struct Student//声明结构体类型Student 
{ int num; 
char name[20]; 
char sex; 
int age; 
float score; 
char addr[30]; 
}; 
Student stu[3];
也可以直接定义一个结构体数组,如
struct Student 
{ int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
}stu[3];
struct
{ int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
}stu[3];
结构体数组的初始化与其他类型的数组一样,对结构体数组可以初始化。如
struct Student 
{
int num; 
char name[20]; 
char sex;
int age; 
float score; 
char addr[30]; 
}stu[3]={
{10101,″Li Lin″, ′M′, 18,87.5, ″103 Beijing Road″}, 
{10102,″Zhang Fun″,′M′,19,99, ″130 Shanghai Road″}, 
{10104,″Wang Min″,′F′, 20,78.5, ″1010 Zhongshan Road″}}; 
                                                                                                   4>extern作用
1.extern对变量的作用
声明一个外部变量
2.对函数的作用
定义和声明一个外部函数(可省略)
static对变量的作用
1定义一个内部变量
对函数的作用
定义和声明一个内部函数
1结构体变量
struct student stu = {1;10};
      指针变量p指向stu变量的三种方式  p = &stu;
第一种方式
<pre name="code" class="csharp">printf("age=%d,no=%d\n",stu,age,no);

       第二种方式 
  
printf("age=%d,no=%d\n",*p,age,(*p)no);
     第三种方式
printf("age=%d,no=%d\n",p→age,p→no);
在内部变量中内部变量只能被本文件访问,不能被其他文件访问。
外部变量,定义的变量能被本文件和其他文件访问
不同文件中的同名内部变量互不影响
                                           -----------android培训、java培训、java学习型技术博客、期待与您交流!------------





















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值