[C语言 - 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语言寻址由大到小

 1 #include <stdio.h>
 2
 3 int main(int argc, const char * argv[]) {
 4     int a = 100;
 5     int b = 200;
 6
 7     printf("The address of a is %d\n", &a);
 8     printf("The address of b is %d\n", &b);
 9
10     return 0;
11 }

out:

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

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

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

[C语言 - 2] C语言变量的相关文章

Swift语言指南(一)--语言基础之常量和变量

Swift 是开发 iOS 及 OS X 应用的一门新编程语言,然而,它的开发体验与 C 或 Objective-C 有很多相似之处. Swift 提供了 C 与 Objective-C 中的所有基础类型,包括表示整数的 Int,表示浮点数的 Double 与 Float,表示布尔值的 Bool,以及表示纯文本数据的 String. Swift 还为两个基本集合类型 Array 与 Dictionary 提供了强大的支持,详情可参考 (集合类型)Collection Types. 与 C 语言类

Go语言学习笔记(二) [变量、类型、关键字]

日期:2014年7月19日 1.Go 在语法上有着类 C 的感觉.如果你希望将两个(或更多)语句放在一行书写,它们 必须用分号分隔.一般情况下,你不需要分号. 2.Go 同其他语言不同的地方在于变量的类型在变量名的后面.例如:不是,int a,而是 a int.当定义了一个变量,它默认赋值为其类型的 null 值.这意味着,在 var a int后,a 的 值为 0.而 var s string,意味着 s 被赋值为零长度字符串,也就是 "". 3.Go语言的变量声明和赋值 在Go中使

语言中结构体变量和结构体类型的定义

1.结构体类型定义 定义方式1: Typedef struct  LNode {    int  data;  // 数据域    struct LNode   *next;  // 指针域 } *LinkList; 定义方式2: struct  LNode {    int  data;  // 数据域    struct LNode   *next;  // 指针域 }: Typedef struct  LNode  *LinkList; 以上两个定义方式是等价的,是将*LinkList定义

go语言基本语法:变量的声明

一.变量的使用 1.1 什么是变量 变量是为存储特定类型的值而提供给内存位置的名称.在go中声明变量有多种语法. 所以变量的本质就是一小块内存,用于存储数据,在程序运行过程中数值可以改变 1.2 声明变量 var名称类型是声明单个变量的语法. 以字母或下划线开头,由一个或多个字母.数字.下划线组成 声明一个变量 第一种,指定变量类型,声明后若不赋值,使用默认值 var name type name = value 第二种,根据值自行判定变量类型(类型推断Type inference) 如果一个变

编译性语言、解释性语言和脚本语言

1.计算机不能直接理解高级语言,只能理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序.(计算机只能执行机器语言:我们要执行高级语言编的代码,就只能用编译器把它变成机器语言) 2.翻译有两种方式:a.编译b.解释.两种方式主要是翻译的时间不同 3.编译语言:编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成机器语言文件:比如,exe文件,以后运行的话就不用重新编译了,直接使用编译的结果就行了:因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序

为什么和其他语言相比C语言是快速的语言

初入门的我们经常听见别人说"真正的程序员用C语言编程,C是最快的语言因为它是最靠近及其底层的语言."那么和其他语言相比C语言到底有什么特别的呢? C语言没有什么特别,这就是它快速的秘诀. 新的语言支持更多的特性,比如,垃圾回收(garbage collection),动态类型(dynamic typing)等等.这些新加入的特性让出学者们更容易上手. 问题的关键就在于,这些新的功能增加了处理开销(processing overhead),也就降低了程序性能.而C语言中没有这些功能,它不

Swift语言指南(八)--语言基础之元组

元组 元组(Tuples)将多个值组合为一个复合值.元组内的值可以是任何类型,各个元素不需要为相同类型(各个元素之间类型独立,互不干扰--Joe.Huang). 下例中,(404, "Not Found") 是一个描述HTTP状态码的元组.HTTP状态码是当你向WEB服务器请求页面时服务器返回的一个特殊值,如果你(向WEB服务器)请求了一个不存在的网页,返回的状态码就是 404 Not Found : 1 let http404Error = (404, "Not Found

动态语言和静态语言、编译型语言和解释型语言、强类型语言和弱类型语言的分析

一.动态语言和静态语言1. 我们常说的动.静态语言,通常是指: 动态类型语言 Dynamically Typed Language 静态类型语言 Statically Typed Language 可能还有:动.静态编程语言 Dynamic\Statically Programming Language 2.    动态类型语言:在运行期间检查数据的类型的语言例如:Ruby\Python这类语言编程,不会给变量指定类型,而是在附值时得到数据类型.Python是动态语言,变量只是对象的引用,变量a

初识GO语言——安装Go语言

本文包括:1)安装Go语言.2)运行第一个Go语言.3)增加vim中对Go语言的高亮支持. 1.安装Go语言 本文采用源码安装Go语言,Go语言的源代码在百度网盘 http://pan.baidu.com/s/1mguZqhM 1.1.修改环境变量 编辑文件~/.bashrc vim ~/.bashre 在文件最后添加如下代码 # about go language export GOROOT=$HOME/go export GOARCH=386 export GOOS=linux export

静态语言和动态语言

基本概念 静态语言(强类型语言) 静态语言是在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型. 例如:C++.Java.Delphi.C#等. 动态语言(弱类型语言) 动态语言是在运行时确定数据类型的语言.变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型. 例如PHP/ASP/Ruby/Python/Perl/ABAP/SQL/JavaScript/Unix Shell等等. 强类型定义语言 强制数据类型定义的语言.也就是说,一旦一个变量被