【C\C++语言入门篇】 深入函数
前面一篇我们介绍了结构体,这篇终于能够介绍函数了。为什么这么说呢?因为函数非常重要。就这么简单。嘿嘿!之所以在这时才讲函数,是因为本篇将联系到前面的每一篇,这样函数才能体现的透彻。那我们就迫不及待的切入正题。
从第一篇Helloworld开始到现在,就没有脱离函数。那就是我们的main函数。main函数也是一个普通的函数,只不过通常把它作为我们写的程序的入口。也就是说我们就当它最先执行。那这样一来为什么说它又是一个普通的函数呢?原因是我们可以通过写代码改变这个入口。让我们的程序一开始不执行main函数而先执行我们自定义的函数。具体怎么实现不是本篇的内容,大家知道有这么回事便可。记得main函数并不是一个特殊的函数,它只是被认为的定为程序的入口函数而已。
那么,什么是函数?通俗的理解,它就是一段代码块,被我们将零散的语句集中在一起而用于支持某个功能。比如我们的strcpy也是一个函数,这个函数的作用是字符串拷贝。它里面有很多语句。这些语句被用一个函数的形式集中在一起而已。说到这里又不得不强调一点,那就是我们在接触一个新的东西的时候尽量往其本质想,这样便不会感到抽象和陌生。就比如函数,我们就理解它就是一个代码块集中管理的方案。一个函数名,参数列表加返回值用大括号将代码括起来就成了函数。虽然是括起来了,但是函数可以说是不存在的。当编译器将我们的CC++代码编译成汇编语言的时候,每个函数都只是一段代码,什么函数名,参数列表,返回值将不再清晰可见。那就是一段集中在一块儿的代码。我们也就这么理解。至于为什么在CC++语法上函数要有名字、参数、返回值。这点是可以理解的。因为是高级语言嘛,这样一来代码的模块性将很强。总不可能这样写哟:
有函数:
void fun( void )
{
int a = 0;
}
void fun1( void )
{
int b = 0;
}
int main( void )
{
if ( ... )
fun();
else
fun1();
return 0;
}
没函数:
int main( void )
{
if ( ... )
goto fun;
相关文档:
找错题
试题1:
void test1()
{
char string[10];
char* str1 = "0123456789";
strcpy( string, str1 );
}
试题2:
void test2()
{
char string[10], str1[10];
int i;
for(i=0; i<10; i++)
{
str1[i] = 'a';
}
strcpy( string, str1 );
}
试题3:
void test3( ......
原文地址:http://dev.yesky.com/147/2356147.shtml
对于一个c/c++程序员来说,内存泄漏是一个常见的也是令人头疼的问题。已经有许多技术被研究出来以应对这个问题,比如Smart Pointer,Garbage Collection等。Smart Pointer技术比较成熟,STL中已经包含支持Smart Pointer的class,但是它的使用似乎并不广泛,而且它也不能 ......
对于序列求和的程序大家不会陌生,而我今天看到的这个程序个人觉得比较好,所以贴上来共享一下。
要求:输入类似于87 98 67 56 0的任意序列,但是以零结尾。然后输出序列的和。
程序如下 :
/********************************************
* Name : sum.c
* Purpose : sum
* Author : zimo
  ......
C/C++中结构体(struct)知识点强化(二)
出处:PConline 2005年03月07日 作者:管宁 责任编辑:xietaoming
首先,我们写这个程序,要考虑到由于是一个链表结构,我们不可能知道它的大小到底是多大,这个问题我们可以用动态开辟堆内存来解决,因为堆内存在程序结束前始终是有效的,不受函数栈空间生命期的限制, ......