首页 > 其他分享 >C语言变量分类

C语言变量分类

时间:2023-11-08 09:44:04浏览次数:34  
标签:存储 分类 变量 局部变量 C语言 修饰 全局变量 定义

按照变量的定义位置分类,在函数外部定义的变量为 全局变量 或者 外部变量;在函数内部定义的变量为 局部变量

在不加修饰\(^*\)的情况下,全局变量的作用域是定义以下的整个文件,局部变量的定义域是定义以下的所在函数体。在函数内访问变量时,优先查找局部变量,所以如果局部变量与全局变量同名,局部变量会“遮蔽”全局变量。

全局变量的存储位置是静态存储区,不加修饰的局部变量的存储位置是动态存储区。

* “修饰”是在定义变量时通过添加额外的关键字来改变变量的特性,不加修饰或者用 auto 修饰的变量称为 自动变量

const 修饰符将一个变量声明为 常变量。常变量是只读的,只能在定义时进行赋值(如不赋值则编译器默认初始化为 \(0\))。const 不改变变量的存储位置,也就是说,全局常变量仍然存储在静态存储区,局部常变量仍然存储在动态存储区(这使得局部常变量可以通过指针间接修改)。

extern 修饰符的作用是扩展一个全局变量的作用域(不能修饰局部变量),将作用域扩展到定义点之前或者其他文件里。使用 extern 时,我们没有定义新变量,只是进行了声明。

static 修饰符的作用是将变量声明为 静态变量,静态变量存储在静态存储区中,即使它本身是定义在函数之中的局部变量,这使得我们可以保存函数的局部变量,在下次调用时继续使用。static 不改变变量的作用域,静态局部变量的作用域仍然只在对应函数之内。特别的,全局变量如果被 static 修饰,就失去了被其他文件 extern 的能力,只能在本文件中生效。

register 修饰符的作用是直接将变量定义在寄存器而非内存中,这类变量叫做 寄存器变量。寄存器变量的使用能够提高程序的运行效率,但是大量的使用寄存器变量可能会填满寄存器,反而降低运行速度!更不能用 register 修饰全局变量,否则它们会一直占据寄存器空间,造成资源浪费。

标签:存储,分类,变量,局部变量,C语言,修饰,全局变量,定义
From: https://www.cnblogs.com/th19/p/17816615.html

相关文章

  • 一个可以自动把微信的聊天收到的二维码图片实时提取出来并分类的软件
    10-1如果你有需要实时地、自动地把微信各个群收到的二维码图片提取出来的需求,那本文章适合你,本文章的主要内容是教你如何实现自动提取微信收到的二维码图片,助你快速扫码,永远比别人领先一步。 首先需要准备好的材料:1,一台电脑,个工具是电脑软件,手机不行2,你的微信,支持微信多开,多个也可......
  • 字符串复健(c语言)
    目录目录目录字符串的声明和初始化字符串的内存表示字符串的输入输出输入输出字符串相关函数总结字符串的声明和初始化在C语言中,字符串实际上是使用空字符\0结尾的一维字符数组。声明和初始化一个abc字符串:charsite[4]={'a','b','c','\0'};简化:charsite[]="a......
  • 一文带你零基础深入理解随机变量,概率分布与统计量
    一.随机事件与概率1.1随机现象在自然界和人类活动中,发生的现象多种多样,比如下列这些现象:1.偶数能被2整除2.光的速度是常数 3.一家门店一天之内的订单量4.一个新生儿可能是男生也可能是女生 5.AB实验存在对照组和实验组......
  • 学习c语言的一天(1)
     打印地址使用%p输出int(整型)二维数组时,发现地址每次+4,是因为一个整型占4个字节,同理输出char(字符型)二维数组占1个字节,所以存储地址每次+1 #define_CRY_SECURE_NO_WARNINGS#include<stdio.h>intmain(){ intarr[3][4]={{1,2,3,4},{5,6}};charcarr[3][4]={{'a......
  • JavaScript--变量和数据类型
    使用var声明变量vartest=20;test="张三";变量可以存放不同类型的值var定义域分布在全局并且可以重复定义letlet关键字所在的代码块内有效JavaScript中分为:原始类型和引用类型5种原始类型number:数字,整数或者小数string:字符、字符串boolean:布尔null:空undefined:......
  • js的变量
    变量的定义及语法变量是指在一个程序中保存数据的容器,是计算机内存中存储数据的标识符,根据变量名称可以获取到内存中存储的数据语法:var变量名=值实操:varx=100document.write(x+1000)//注意:没有加单引号哦!varx=200vary=x+1000document.write(y)var......
  • go--变量、常量、作用域
    变量变量可以通过变量名访问。Go语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。声明变量的一般形式是使用var关键字:var变量名变量类型也可以一次声明多个变量var变量名1,变量名2变量类型packagemainimport"fmt"funcmain(){varastring=......
  • 用c语言写“扫雷游戏”
    扫雷游戏是一款简单却富有挑战性的益智游戏,适合所有年龄段的玩家。游戏的操作简单,但是需要玩家具备较高的逻辑推理能力和观察力,让人在游戏的过程中不断思考、分析、判断。游戏同时也可以锻炼玩家的注意力和耐心,让人享受到难度和成功带来的成就感。总体来说,扫雷游戏是一款有趣又有益......
  • Base64编码、解码 C语言例子(使用OpenSSL库)
    #include<stdio.h>#include<string.h>#include<unistd.h>#include<openssl/pem.h>#include<openssl/bio.h>#include<openssl/evp.h>intbase64_encode(char*in_str,intin_len,char*out_str){BIO*b64,*bio;......
  • python初学者学习笔记-第二章-变量和数据类型
    chapter2/变量和数据类型2.1Python语法简介Python的语法主要有三个特点:英文输入,单行执行,缩进模式。如上图的代码,以“#”开头的语句是注释;一行是一块代码;以冒号“:”结尾时,换行执行缩进模式,其后的语句组成一个整体的代码块。大小写敏感的。2.2print()print()函数———打......