变量的内存存放与作用域

简介: 1.变量的声明、定义、初始化 一个程序可由多个源文件实现。 变量可以多次声明,但只能被定义一次。 声明通过extern关键字实现。 extern int i;  //声明 int j;   //定义 2.变量的内存存放 全局变量与局部变量在没有初始化时,取初值的方式不同。前者是全0. c++内存分为代码、堆、栈、常量和全局//静态存储区。 不同变量的存储位置: 全局/

1.变量的声明、定义、初始化

一个程序可由多个源文件实现。

变量可以多次声明,但只能被定义一次。

声明通过extern关键字实现。

extern int i;  //声明

int j;   //定义

2.变量的内存存放

全局变量与局部变量在没有初始化时,取初值的方式不同。前者是全0.

c++内存分为代码常量全局//静态存储区。

不同变量的存储位置:

全局/静态存储区——全局变量,static变量;

栈——局部变量、函数调用时的参数。栈的容量一般比较有限;

堆——new运算符分配,需由delete释放;若分配失败,new返回NULL,记得安全性检查。

常量存储区——这是一块比较特殊的存储区,里面存放的是常量。

3.标示符的作用域

 for(int i=0;i<10;i++){//i仅在这里和for小括号内有效} 

c++中大多数作用域都以大括号分隔。

:: 类的作用域分辨符

#include<iostream>
using namespace std;
void show(){cout<<"hello";}
class A{
public:
		static void show(){cout<<"hi ";}
		static void fun(){
			show();  //成员函数
			::show(); //全局函数
		}

};
int main(int argc, char** argv)
{
	A::fun();
	return 0;
}
/*hi hello*/


4.内联函数

函数的调用是有开销的。比如:保存CPU环境、实参到形参的传递、函数执行完返回、恢复CPU环境。而使用inline函数可以达到空间换时间的效果。它告诉编译器把此函数插入到调用的地方去。

关键字inline 必须与函数定义体放在一起才能使函数成为内联,仅将inline 放在函数声明前面不起任何作用。 

如下风格的函数Foo 不能成为内联函数: 

inline void Foo(int x, int y); // inline 仅与函数声明放在一起 

void Foo(int x, int y){} 

 

而如下风格的函数Foo 则成为内联函数: 

void Foo(int x, int y); 

inline void Foo(int x, int y) // inline 与函数定义体放在一起{} 

所以说,inline 是一种“用于实现的关键字”,而不是一种“用于声明的关键字”。


 

目录
相关文章
|
29天前
|
存储 C语言 C++
动态内存分配与指向它的指针变量
动态内存分配与指向它的指针变量
20 1
|
3月前
|
存储 程序员 C语言
C语言:从内存出发,理解变量
C语言:从内存出发,理解变量
31 0
|
3月前
|
C++
vs中变量内存怎么看
vs中变量内存怎么看
|
4月前
|
JavaScript 算法 前端开发
|
存储 JavaScript 前端开发
一篇文章带你搞定javaScript变量作用域和内存问题(变量,作用域,垃圾收集,管理内存)
一篇文章带你搞定javaScript变量作用域和内存问题(变量,作用域,垃圾收集,管理内存)
58 0
|
数据处理
海量数据处理面试题:给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?
海量数据处理面试题:给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?
507 0
海量数据处理面试题:给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?
|
存储 C语言
(指针内容)当你申请一个变量,在这期间内存会发生什么?
(指针内容)当你申请一个变量,在这期间内存会发生什么?
94 0
(指针内容)当你申请一个变量,在这期间内存会发生什么?
|
存储 Linux C语言
C语言中变量在内存中的保存与访问
C语言中变量在内存中的保存与访问
|
存储 Web App开发 前端开发
重学JavaScript之变量、作用域和内存问题
重学JavaScript之变量、作用域和内存问题
|
Java
哪种JAVA的变量表达式使得变量a和变量b具有相同的内存引用地址????
哪种JAVA的变量表达式使得变量a和变量b具有相同的内存引用地址????
85 0

热门文章

最新文章