基础知识
malloc 函数了解
这行代码使用了malloc()
函数在堆上分配内存。变量p
被赋予指向已分配内存块的指针。
分配的内存大小由变量i
决定。malloc()
函数需要一个表示所需字节数的参数,因此i
必须是一个整数值,代表所需的字节数。
由于malloc()
返回一个无类型指针(void *),返回的指针被强制转换为char *
指针类型来与变量p
的类型相匹配。
需要记住,在不再需要使用分配的内存时,一定要释放它以防止内存泄漏。通常通过调用free(p)
来完成,其中p
是先前由malloc()
返回的指针。
scanf("%c",&c)
这行代码使用了scanf()函数获取一个字符类型的输入,将其存储到变量c中。
具体来说,scanf()函数是C语言标准库中的一个输入函数,它可以从控制台或文件中读取数据。该函数的原型如下:
int scanf(const char *format, ...);
在本例中,第一个参数是格式字符串"%c",用于指示scanf()函数将要输入一个字符。格式字符串由百分号(%)和占位符组成,每个占位符都对应一个待读入的变量。在这种情况下,%c 占位符表示要读取单个字符。
第二个参数是一个指向变量c的指针,因此&c表示将字符输入到变量c中。
需要注意的是,scanf()函数不会自动跳过空格和换行符等空白字符,而是将其作为输入数据的一部分。如果希望跳过这些字符,则需要在格式字符串中使用空格占位符(" ")或转义字符(\n),例如:
scanf(" %c", &c); // 加上空格占位符
这样就可以忽略输入时可能存在的空格和换行符等空白字符。