C语言基础知识(38)

三种循环比较

while, do-while和for三种循环在具体的使用场合上是有区别的,如下:

在知道循环次数的情况下更适合使用for循环;

在不知道循环次数的情况下适合使用while或者do-while循环:

如果有可能一次都不循环应考虑使用while循环

如果至少循环一次应考虑使用do-while循环。

但是从本质上讲,while,do-while和for循环之间是可以相互转换的。

realloc()函数的作用/目的是什么

realloc()函数用于调整分配的内存块的大小。 它有两个参数,第一个是指向先前分配的内存的指针,第二个是新请求的大小。

realloc()函数首先释放旧对象,然后重新分配新指定的大小。 如果新大小小于旧大小,则新分配内存的内容将与先前相同,但如果新创建的对象中的任何字节超出旧大小,则超出大小的值将是不确定的。

语法:

void*realloc(void*ptr, size_t size);C

示例代码:

#include#include#includeintmain(){char*pcBuffer =NULL;/* Initial memory allocation */

pcBuffer =malloc(8);if(pcBuffer ==NULL){return0;}strcpy(pcBuffer,"yii");printf("\npcBuffer = %s\n", pcBuffer);/* Reallocating memory */

pcBuffer =realloc(pcBuffer,15);strcat(pcBuffer,"bai.com");printf("pcBuffer = %s\n", pcBuffer);//free the allocated memoryfree(pcBuffer);return0;}C

输出结果为:

pcBuffer = yii

pcBuffer = yiibai.com

Shell

注意:它应该用于动态分配的内存,但如果指针是空指针,realloc 的行为类似于 malloc 函数。

函数

(1)一个源程序由多个函数组成。

(2)C程序的执行从main()函数开始;

(3)所有函数都是平行的;

(4)函数分类;可以分为标准和自定义,还可以分为有参函数和无参函数。

函数定义的一般形式:

(1)类型标志符 函数名()

{

声明部分

语句

}

(2)类型标志符 函数名(形式参数列表)

{

声明部分

语句

}

多重循环

多重循环就是在循环结构的循环体中又出现循环结构。

在实际开发中一般最多用到三层重循环。

因为循环层数越多,运行时间越长,程序越复杂,所以一般用2-3层多重循环就可以了。另外不同循环之间也是可以嵌套的。

多重循环在执行的过程中,外层循环为父循环,内层循环为子循环,

**父循环一次,子循环需要全部执行完,直到跳出循环。**父循环再进入下一次,子循环继续执行…

malloc(0)的返回值是多少

如果请求空间的大小为零,则行为将由实现定义。 malloc 的返回值可能是一个空指针,或者它表明该大小的行为是某个非零值。 标准建议不要使用指针来访问当大小为零时由 malloc 返回的对象。

关于形参和实参的说明

(1) 在定义函数中指定的形参,在未出现函数调用时,他们并不占用内存中的存储单元,只有发生调用时,才会分配内存。

(2) 实参可以是常量、变量或者表达式;有时传递的时地址;

(3) 在被定义中,形参必须指定类型;

(4) 实参与形参的类型应相同或赋值兼容;

(5) C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只有实参传递给形参,而不能由形参传递给实参。

break语句

那么循环5次的时候,需要中断不继续训练。在C语言中,可以使用break语句进行该操作.

使用break语句时注意以下几点:

在没有循环结构的情况下,break不能用在单独的if-else语句中。

在多层循环中,一个break语句只跳出当前循环。

你可能感兴趣的:(c语言)