2. C语言变量

A.变量的作用域:

1.局部变量:在函数或者代码块内部定义的变量

作用域:从定义处到代码块结束

生命周期:从定义处分配控件,代码块结束后被回收

局部变量没有默认值,要自己初始化

2.全局变量:在函数外定义的变量

作用域:从定义处到文件结尾(能被后面的所有函数共享)

生命周期:程序启动分配空间,程序退出回收

全局变量有默认值0

从最近的作用域开始寻找,直到找到变量

#include <stdio.h>

int main(int argc, const char * argv[]) {
    int a = 100;
   
    {
        int a = 200;
        printf("a = %d\n", a);
    }
   
    printf("a = %d\n", a);
   
    return 0;
}

out:

a = 200
a = 100

适合地使用块,能够提高性能,及时回收内存

块内定义的变量执行过后就会被回收

B. C语言变量的内存分析

C语言寻址由大到小

#include <stdio.h>

int main(int argc, const char * argv[]) {
    int a = 100;
    int b = 200;
   
    printf("The address of a is %d\n", &a);
    printf("The address of b is %d\n", &b);
   
    return 0;
}

out:

The address of a is 1606416268
The address of b is 1606416264

—》相差4个字节,由大到小

时间: 2024-08-29 08:54:32

2. C语言变量的相关文章

黑马程序员-c语言变量作用域问题

c语言中的变量作用域总结 不管什么语言,main好像总是程序的入口,大括号是它的内容:变量的作用域总是困扰着我们,接下来,我们循序渐进的搞明白c语言中的变量作用域,首先得知道c是弱类型的语言,弱类型表现在很多方面: 1:你可以直接在程序中写一个常量,然后一个分号:1: 2:在定义函数时,void型的函数可以return:int型的可以不用写返回值. ---还有很多 下面我们一步一步开始:首先在main中定义的变量当然作用于整个main函数了 1:在main中定义变量 #include<stdio

C语言变量的类型和存储位置

1. C语言变量主要分为全局变量.静态全局变量.局部变量.静态局部变量和寄存器变量.其中静态变量用static关键字进行修饰.程序所占用的内存可以分为以下几个部分: (1)代码段-存放程序代码,只读的,不能修改. (2)全局区(静态区),又称为数据段.其中.data段存放的是已经初始化的全局变量和静态变量(静态全局变量和静态局部变量)..bss段存放的是未初始化的全局变量和静态变量(静态全局变量和静态局部变量).bss段会将未初始化的变量填充为0. (3) 堆: 是一种线性结构,类似链表实现,也

1005------C语言-----------C语言变量的存储方式解析

0.背景 在看APUE第七章的时候,作者分析了setjmp和longjmp这种函数间跳转机制对不同存储类型变量的影响,看到register,auto,volatile,static等等这些关键字很模糊,也可能太少用了,但是自认为C语言基础不错的我还是不能接受任何不懂的知识点,于是就捋了捋思路. 1.C语言变量的基本属性 在C语言中,每一个变量都有3个属性: (1)类型,就是常用的int.char等,它确定了变量存储长度和运算方式: (2)作用域,根据变量所处的位置分为全局变量和局部变量: (3)

C语言变量声明内存分配

转载: C语言变量声明内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1.栈区(stack)— 程序运行时由编译器自动分配,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈.程序结束时由编译器自动释放. 2.堆区(heap) — 在内存开辟另一块存储区域.一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 .注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵. 3.全局区(静态区)(static)—编译器编译时即分配内存.全局变量和静态变量

R语言变量作用域

语言采用的是Lexical Scoping(词法作用域).词法作用域,又称静态作用域,即变量定义后的作用域是不变的. 在函数的主体里面,变量是分为被约束的.局部的.或自由的三种.被约束的变量是指匹配函数形式参数的变量.局部变量是指,在函数主题内创建和定义的变量.自由变量指的是那些既不是 局部也不是被约束的变量.当一个函数主体被求值,确定一个局部或 被约束变量的值没有问题.作用域规则决定了一个语言如何为自由变量 找恰当的值. 在R中,自由变量的取值是由它所在函数定义的环境(environment)

[C语言 - 2] C语言变量

A.变量的作用域: 1.局部变量:在函数或者代码块内部定义的变量 作用域:从定义处到代码块结束 生命周期:从定义处分配控件,代码块结束后被回收 局部变量没有默认值,要自己初始化 2.全局变量:在函数外定义的变量 作用域:从定义处到文件结尾(能被后面的所有函数共享) 生命周期:程序启动分配空间,程序退出回收 全局变量有默认值0 从最近的作用域开始寻找,直到找到变量 #include <stdio.h> int main(int argc, const char * argv[]) { int a

区块链基础语言(七)——Go语言变量

一.变量名 1.1 命名规则 为提升代码可读性和可维护性,多采用统一的.可读性高的命名方式.Go语言变量名由一个或多个字母.数字.下划线组成的序列,但第一个字符必须是字母或下划线,不能是数字,且区分大小写.例如:1a不能作为变量名,myname和myName是不同的变量名. 1.2 命名风格 命名风格有多种,常见的有驼峰式命名和下划线命名,而Go语言拥护驼峰命名法,排斥下划线法.驼峰命名法分为两种: ? 大驼峰式命名:用大写字母分隔语义,首写字母大写,例如HelloWorld: ? 小驼峰式命名

go语言变量

变量可以通过变量名访问 Go 语言变量名由字母.数字.下划线组成,其中首个字符不能为数字 声明变量的一般形式是使用 var 关键字: var identifier type 变量声明 1. 指定变量类型,如果没有初始化,则变量默认为零值. var v_name v_type v_name=name 零值就是变量没有做初始化时系统默认设置的值. 数值类型: 0 布尔类型为:false 字符串为 ""(空字符串) 2.根据值自行判定变量类型 var v_name=name 3. 多变量声明

每天一点Go语言——变量、常量、运算符解析

每天一点Go语言--变量.常量.运算符解析 前言 ? 前面简单说过有关Go语言的基础语法及其数据类型,大致上了解了Go语言程序的组成,而本文将讲述近乎所有编程语言都涉及的变量.常量以及运算符相关内容. 一.变量 何为变量? ? 对该专业名词解释:计算机语言中能储存计算结果或能表示值抽象概念.变量可以通过变量名访问.Go语言中的变量由字母.数字.下划线组成,首字母不可以为数字.耳熟能详了哈~ ? 笔者的理解:我编写程序的时候需要使用一个值,并且我一直想要重复使用,而且有时候这个值会发生变化等等,所