C语言函数返回与内存分配探索

需积分: 1 0 下载量 2 浏览量 更新于2024-07-20 收藏 187KB DOCX 举报
"这篇内容主要总结了C语言的相关知识点,包括`return`语句的作用、函数的调用以及`malloc()`动态内存分配函数的使用,同时也涉及到指针和位移运算符的应用。" 在C语言中,`return`语句扮演着至关重要的角色。它用于从函数中返回控制权到调用它的函数,即主调函数。当`return`语句执行时,程序的执行流程会立即回到主调函数,同时,如果`return`后面带有参数,还可以将一个值返回给主调函数。例如,在第一个示例中,`function()`函数在打印"111111"后,`return`语句使得函数执行停止,不会继续打印"222222"。如果将`return`语句移动到`printf("222222");`之后,那么"222222"将会被打印,然后函数结束并返回到`main()`。 动态内存分配是C语言中管理内存的重要手段。`malloc()`函数用于在运行时动态地分配指定字节数的内存空间。在给出的代码中,`fun()`函数演示了如何使用`malloc()`分配一个`int`类型的内存,并通过指针`p`来操作这个内存。`sizeof()`运算符用来获取数据类型所占据的字节数,这里用于确定`int`类型的大小。`malloc(sizeof(int))`分配与`int`类型等大的内存空间,而`(int*)malloc(sizeof(int))`则将分配到的无类型内存地址转换为`int`类型的指针,使得`p`可以安全地指向这个内存。通过`*p=n;`,`n`的值被赋给了`p`所指向的内存,这样`p`就指向了值为10的变量。 位移运算符是C语言中的另一个重要概念。在最后一个示例中,`>>`是右移运算符,它将二进制数向右移动指定的位数。当一个`unsigned char`类型的变量`a`(值为8,二进制表示为00001000)右移3位后,其最右边的3位会被丢弃,最左边的空位用0填充,因此`c = a >> 3`的结果是`c = 00000001`,即1。 总结这些知识点,我们可以看到C语言中函数的控制流、内存管理和位运算的运用,这些都是学习C语言基础的重要组成部分。理解并熟练掌握这些概念对于编写高效的C语言程序至关重要。