您的当前位置:首页>全部百科>百科问答详情
注:文章内容来源于网络,真实性有待确认,请自行甄别。

一段有关函数变量的生存时间的程序#include<stdi

发表于:2024-10-24 00:00:00浏览:7次 分类: 电脑/网络-程序设计-C/C++
问题描述:#include <std.h> #include <stdlib.h> struct linked_list { int number; struct linked_list *next; }; typedef struct linked_list node; int main(int argc, char *argv[]) { node *head; void create(node *p); int count(node *p); void #include <std.h> #include <stdlib.h> struct linked_list { int number; struct linked_list *next; }; typedef struct linked_list node; int main(int argc, char *argv[]) { node *head; void create(node *p); int count(node *p); void print(node *p); node *insert(node *head); head=(node *)malloc(sizeof(node)); create(head); printf("\n"); print(head); printf("\n"); printf("\nNumber of items = %d \n",count(head)); system("PAUSE"); return 0; } void create(node *list) { printf("Input a number\n"); printf("(type -999 at end): "); scanf("%d",&list->number); /* create current node */ if(list->number==-999) { list->next=NULL; } else /*create next node*/ { list->next=(node *)malloc(sizeof(node)); create(list->next); /*recursion occurs*/ } return; } void print(node *list) { if(list->next!=NULL) { printf("%d-->",list->number); /* print current item */ if(list->next->next==NULL) printf("%d",list->next->number); print(list->next); /* move to next item */ } return; } int count(node *list) { if(list->next==NULL) return 0; else return(1+count(list->next)); } 书上说函数内的自动变量在函数调用结束后就被释放了,既然如此,为什么在本程序中(有关链表的创建和链表内容的打印,程序本身完全正确,在DEVC++下测试通过)create(head)函数调用结束后,还能用print(head)函数打印出用create()函数创建的链表内容?
c语言为数据分配内存空间的方式大体有两种,一种是分配在栈上,一种是分配在堆上。 分配在栈上的数据有:值传递的参数 非静态的局部变量 等等,他们会随着函数调用的结束被释放。 分配在堆上的数据有:由malloc分配的数据空间 等,他们不会随着函数调用的结束被释放。 更详细的解释可以在网上搜索关键字:c 内存分配 这要涉及到 操作系统 数据结构 方面的知识

猜你喜欢

C++基础题若intx=2,y=3;,则x&y的结果是:
若int x=2,y=3;,则x&y的结果是:
发表于:2024-10-24 00:00:00 浏览:56 分类: 电脑/网络-程序设计-C/C++
如何制作软件我想知道如何使用C++编写软件(具有可视化界面的软件
我想知道如何使用C++编写(具有可视化界面的软件)呢? 希望各位说的详细点,写谢了!
发表于:2024-10-24 00:00:00 浏览:46 分类: 电脑/网络-程序设计-C/C++
C语言能人请进用C语言写一个程序,要求输入N个整数,按从小到大的
用写一个程序,要求输入N个整数,按从小到大的顺序输出,就说说思路。如果N=4,写个具体的程序。
发表于:2024-10-24 00:00:00 浏览:43 分类: 电脑/网络-程序设计-C/C++
C++把大写改成小写用哪个函数?
++把大写改成小写用哪个函数?
发表于:2024-10-24 00:00:00 浏览:41 分类: 电脑/网络-程序设计-C/C++
哪里能下载中文版的《TheC++ProgrammingLangu?
哪里能下载中文版的《TheC++ProgrammingLangu?
发表于:2024-10-24 00:00:00 浏览:40 分类: 电脑/网络-程序设计-C/C++
提问c++的问题#include"iostream.h"void
#include"tream.h" void main() {int k=0; char c='A'; do{switch(c++) {case'A':k++;break; case'B':k--; case'C':k+=2;break; case'D':k=k%2;continue; case'E':k=k*10;break; /3;} k++;} while(c<'G');cout<<"k=...
发表于:2024-10-24 00:00:00 浏览:38 分类: 电脑/网络-程序设计-C/C++
哪个源码编辑器最好用?
哪个源码编辑器最好用?
发表于:2024-10-24 00:00:00 浏览:38 分类: 电脑/网络-程序设计-C/C++
C语言中整型可输出以0开头吗?要用C语言编一程序,输出以零开头的
要用编一程序,输出以零开头的一个多位整数,请问能以整型(或长整型)定义这个变量吗?谢谢!
发表于:2024-10-24 00:00:00 浏览:36 分类: 电脑/网络-程序设计-C/C++
用哪个C/C++编译器能够绘出图形啊?(如圆,椭圆,抛物线等)代
写好了,用TC2.0,TC++3.0,win-tc等都编译不出来,用网上给的代码也弄不出来,那个Dev C++不大会用,VC不知道能不能画图。怎么办?郁闷了,到底是出了什么问题了?连个图形都绘不了,分明是在打击我学习的热情啊。
发表于:2024-10-24 00:00:00 浏览:32 分类: 电脑/网络-程序设计-C/C++
求助指针变量怎么输出指针变量(存放变量地址的变量是指针变量,用来
怎么输出指针变量(存放变量地址的变量是指针变量,用来指向另一个变量。为了表示指针变量和他所指向的变量之间的关系,在中用“*”符号表示“指向”,。。。) *p怎么输出p
发表于:2024-10-24 00:00:00 浏览:30 分类: 电脑/网络-程序设计-C/C++