【记录】C语言int a 也会分配内存

转载 2013年12月05日 20:42:34
int a;和int a[x]这两个语句都会分配内存还是第二个会分配?
哪里能找到介绍程序设计语言在物理层的操作的书?比如我问的问题,好象程序设计的书上都不会讲到,还有就是
int a=4;
int b;
b=a;
这里的b=a的b,系统是怎么找到b的存储位置的?


回答:

第一个问题:
void fun() {
int a;
int b[x];
}
当进入函数fun的时候,程序会为a和b在栈中分配实际的内存。当函数返回的时候,栈指针会回指,这样空间就释放了。这不同于在堆中分配内存。

第二个问题:
当定义int a=123;的时候,系统中产生了两个值,一个是123,即a的值,也称为右值,另一个是左值左值其实就是a的地址。系统是通过左值访问123的。

很多书都有讲,数据结构,汇编,C语言,你都学了就会明白。
推荐看<<The C Programming language>>这本书。

http://zhidao.baidu.com/link?url=uuTR80tJaOun-Xgohq9rqUnsvdlc9Ai45sWHyx-Np64cjcauQaC-d_wC7Xh5aL_G9wfjeX9AIFqn_lYLjf5EX_
举报

相关文章推荐

C语言中内存分配

在任何程序设计环境及语言中,内存管理都十分重要。在目前的计算机系统或嵌入式系统中,内存资源仍然是有限的。因此在程序设计中,有效地管理内存资源是程序员首先考虑的问题。 第1节主要介绍内存管理基本概念,重...

C语言和内存初步框架了解

程序运行为什么需要内存 程序的目的是为了去运行,程序运行是为了得到一定的结果。计算机就是用来计算的,所有的计算机程序其实都是在做计算。计算就是在计算数据。所以计算机程序中很重要的部分就是数据。 计算机...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

关于c语言动态分配内存的知识点的总结(总结)

内存分配函数的使用(自己总结的内存分配相关的知识,部分参考网上的知识) 1 malloc函数是动态分配一段堆上内存,并且返回该内存的首地址,该函数不对申请的空间进行清空操作;    malloc是...

C语言:动态分配内存,malloc()与realloc()区别

C语言:动态分配内存,malloc()与realloc()区别
  • xyphf
  • xyphf
  • 2017-07-24 14:44
  • 67

android ndk 03 C语言 动态分配内存,字符串操作

动态分配内存,字符串操作动态内存分配在说动态内存分配之前先说下 静态内存分配 void main(){ //静态内存分派 int a[1024*1024*10];//申请10m ...

指针数组&数组指针的分配内存及函数参数 C语言版

最近写代码总是被基础知识卡住,十分耽误时间,今天又卡住了。所以下定决心一定要弄清楚这个问题,然后不好的是网上的资料总是解决的并不清楚,总是在纠结什么是指针数组什么是数组指针,看了《C缺陷和陷阱》也没有...

C语言-动态分配内存对任意个字符串进行排序

//动态分配内存对输入的任意字符串排序 #include #include #include #include //比较大小 //int str_compare(const char* src,co...

C语言定义了一个结构体怎么分配内存?C\C++中结构体变量与结构体指针内存分配问题?

C语言定义了一个结构体怎么分配内存?C\C++中结构体变量与结构体指针内存分配问题?

C语言中的动态分配内存空间以及内存泄露

ISO C说明了3个用于存储空间动态分配的函数,这三个函数简称为alloc函数。 函数原型: #include void *malloc( size_t size ); void *calloc...

修改的 创建队列程序 C语言。 队列元素 是堆分配内存,而非指针

/*构造一个空队列*/ Queue *InitQueue() { Queue *pqueue = (Queue *)malloc(sizeof(Queue)); if(pqueue!=NULL...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)