C语言第四讲,typedef 关键字,以及作用域

        C语言第四讲,typedef 关键字,以及作用域

一丶typedef关键字

  在C语言中,有typedef 关键字,这个关键字的作用就是允许你为类型定义一个新的名字,也就是 起个别的名字

例如:

  

typedef unsigned int DWORD

那么以后,我们定义unsigned int 类型的变量的时候,这不用敲写 unsigned int 了.直接DWORD即可.

例如:

  

DWORD name = 0; 

一般常常用在 结构体的定义,和函数指针上.

例如:

  

typedef struct MyStruct
{
   int a;
   int b;
}MyIntStruct;  

那么新的类型就是  MyIntStruct ,而这个类型就免去了你每次定义的时候加关键字了.

例如:

  

int main
{
   // struct MyStruct IS;
   // 没定义前,要使用上面
   MyIntStruct  IS;
   IS.a = 10;
   return 0;
} 

二丶作用域

在C语言中,编写的代码有作用域的限制.

作用域是什么?

  简而言之,当我们定义变量的时候,这个变量的访问.要在一定区域内才能进行访问.

比如你在A函数定义变量a,在B函数定义变量b,那么B函数是不能使用a变量的.

例如:

  

#include <stdio.h>

void printfB()
{
   int b = 11;
    printf("%d\r\n",b);

}

void printfA()
{
  int a = 10;
  printf("%d\r\n",a);
}

  

其中上面是函数作用域,  也就是 {    } 块语句包含的.

代码块作用域:

  代码块作用域主要靠 { }来区分.

例如:

  

int main()
{

   int a = 10;
   {
      int a = 11;
      printf("%d",a);    //块语句包围
   }
   printf("%d",a);
   return 0;
} 

如果这样定义,则a不会重定义.且a = 11,在代码执行到 } 结束后.也不复存在了.

文件作用域:

  文件作用域就是代码外面定义的. 也就是说全局变量. 全局作用域,在当前文件的任何一个位置都可以访问的.

例如:

  

  

int a = 10;  //外面声明即可.
int main()
{
   printf("%d",a);
   return 0;
} 

  

原文地址:https://www.cnblogs.com/iBinary/p/8452963.html

时间: 2024-08-06 09:49:35

C语言第四讲,typedef 关键字,以及作用域的相关文章

C语言学习入门 (九) typedef 关键字

关键字:typedef 用法:为各种数据类型定义一个新名字(别名) typedef与基本数据类型 typedef int Integer;Integer a= 8: 也可以在别名的基础上再起一个别名 typedef IntegerMyInteger;MyInteger aa = 8; 原来的数据类型也可以正常使用 typedef与指针 typedef char *String;String str = "stone"; typedef与结构体 typedefstructPerson P

C语言学习入门 (八) typedef 关键字

关键字:typedef 用法:为各种数据类型定义一个新名字(别名) typedef与基本数据类型 typedef int Integer;Integer a= 8: 也可以在别名的基础上再起一个别名 typedef IntegerMyInteger;MyInteger aa = 8; 原来的数据类型也可以正常使用 typedef与指针 typedef char *String;String str = "stone"; typedef与结构体 typedefstructPerson P

C语言第四讲:一维数组,字符数组

数组: 定义: 数据类型 数组名[数组元素个数] = {值1,值2,....} 本质:快速定义多个 相同数据类型的变量 数组的缺点:定义出来的是 相同数据类型 的变量. 如: int c[5] = {0};//在给定数组元素个数的时候,可以按照该模式,全部赋初值为零 int a[] = {4, 5, 6};//在没有给定数组元素个数的时候,可以按照该模式,此时,一定要写清楚所有的初值. 数组元素的访问: 通过数组名加下标来访问的 如:a[1],切记下标从零开始. 注意:1,数组最后一个元素的下标

Java语言第四讲

1.纯随机数发生器 Xn+1=(aXn + c)mod m Modulus=2^31-1=int.MaxValue Multiplier=7^5=16807 C=0 当显示过2^31-2个数之后,才可能重复. 动手动脑: 编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数. package 纯随机数; public class Suiji { private static final int N = 200; private static final int LEFT = 40;

黑 马 程 序 员_视频学习总结&lt;C语言&gt;----07 static和extern关键字、typedef

---------------------- ASP.Net+Unity开发..Net培训.期待与您交流! ---------------------- 一.外部函数 外部函数:如果在当前文件中定义的函数允许其他文件访问.调用,就称为外部函数.C语言规定,不允许有同名的外部函数 二.内部函数 内部函数:如果在当前文件中定义的函数不允许其他文件访问.调用,只能在内部使用,就称为内部函数.C语言规定不同的源文件可以有同名的内部函数,并且互不干扰. 三.static.extern与函数的总结 1.在定

C语言(八)typedef关键字

一.typedef作用简介 我们可以使用typedef关键字为各种数据类型定义一个新名字(别名). #include <stdio.h>   typedef int Integer;    //为int数据类型定义一个别名 typedef unsigned int UInterger; typedef float Float;   int main(){ Integer i=-10; UInterger ui =11; Float f=12.39f; printf("%d %d %.

初探C/C++ typedef关键字

提问 我知道typedef是类型别名的意思,也知道结构体如何定义. 但下面的代码: typedef struct node{ struct node*lchild; char data; struct node*rchild; }bitnode,*bitree; 那这样结构体后面的是对象还是别名呢?我感觉应该是对象,但typedef又无从说起. 然后接着有 bitree createtree(){ -- } 很明显bitree是一种类型,但他又是一个指针,我能说他就是指向这个结构体的对象的指针么

16位汇编第八讲指令第四讲

16位汇编第八讲指令第四讲 一丶串操作类指令 1.什么是串操作? 1.串操作指令是8086指令系统中比较独特的一类指令,采用比较特殊的数据串寻址方式,在操作主存连续区域 的数据是,特别好用.因而比较常用 简而言之,就是内存中的一段数据,拷贝/读取/修改... 到另一块另内存 重点掌握  MOVS  STOS  LODS CMPS SCAS REP 2.串操作的简介 1.串操作指令的操作数,是驻村中连续存放的数据串(String 注意string表示串的意思)--也就是一段数据在内存中 是连续的,

【C语言】19-static和extern关键字1-对函数的作用

本文目录 一.extern与函数 二.static与函数 三.static.extern与函数的总结 说明:这个C语言专题,是学习iOS开发的前奏.也为了让有面向对象语言开发经验的程序员,能够快速上手C语言.如果你还没有编程经验,或者对C语言.iOS开发不感兴趣,请忽略 上一讲中大致介绍了变量的类型,不同类型的变量有不同的存储类型.不同的生命周期.不同的作用域.这讲介绍2个比较重要的关键字:static和extern. static和extern不仅可以用在变量上,还可以用在函数上.这讲先介绍它