【记录】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语言:动态分配内存,malloc()与realloc()区别

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

c语言 什么时候需要动态分配内存?

我讲解一下c语言中动态分配内存的函数,可能有些初学c语言的人不免要问了:我们为什么要通过函数来实现动态分配内存呢?系统难道不是会自动分配内存吗?? 既然有人会问这样的问题,那么我在这里好好的讲解一下...

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

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

C语言calloc()函数:分配内存空间并初始化

头文件:#include calloc() 函数用来动态地分配内存空间并初始化为 0,其原型为:     void* calloc (size_t num, size_t size); call...
  • songcau
  • songcau
  • 2016年10月18日 12:00
  • 69

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

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

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

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

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

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

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...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【记录】C语言int a 也会分配内存
举报原因:
原因补充:

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