虽然一直有在使用C语言,但是由于C语言是大一学的,一些不常用的功能基本都忘记了,因此来复习一下。
c 环境配置
c语言的环境之前都有配置好,同时这方面也不是我想要复习的重点,因此直接略过去。
c 数据类型/变量/常量
算是用的很多的了,写一些不怎么用到的。
void使用方法:
- 函数返回空值
void fun(){}
- 函数参数为空
int fun(void){}
- 指针指向void
类型为 void * 的指针代表对象的地址,而不是类型。例如,内存分配函数 void *malloc( size_t size ); 返回指向 void 的指针,可以通过强转转换为任何数据类型。
#include <malloc.h>
int main(void){
int * p = (int *)malloc(sizeof(4));
*p = 5;
free(p);
return 0;
}
变量,常量
- 通过extern关键词来声明外部变量。
- 通过\来进行转义操作,常用的比如有\n,\t,\r,\等
- 字符串常量的分行
printf("hello world \
interesting");
- static常量
只声明一次。
void fun(){
static int a = 5;
a++;
printf("%d\n",a);
}
int main(int argc, const char * argv[]) {
for (int i = 0; i<10; i++) {
fun();
}
return 0;
}
c运算符号
包括算术运算符,逻辑运算符,关系运算符,位运算符,赋值运算符等
其中 ^ 表示按位异或,<< 表示二进制左移。
一些特殊的
- sizeof()返回变量的大小
- &返回变量的地址
- *指向一个变量
- ?:条件赋值
c语言判断语句
- if-else
- switch
switch(expression){
case constant-expression :
statement(s);
break; /* 可选的 */
case constant-expression :
statement(s);
break; /* 可选的 */
/* 您可以有任意数量的 case 语句 */
default : /* 可选的 */
statement(s);
}
- switch 语句中的 expression 是一个常量表达式,必须是一个整型或枚举类型。
- 在一个 switch 中可以有任意数量的 case 语句。每个 case 后跟一个要比较的值和一个冒号。
- case 的 constant-expression 必须与 switch 中的变量具有相同的数据类型,且必须是一个常量或字面量。
- 当被测试的变量等于 case 中的常量时,case 后跟的语句将被执行,直到遇到 break 语句为止。当遇到 break 语句时,switch 终止,控制流将跳转到 switch 语句后的下一行。不是每一个 case 都需要包含 break。如果 case 语句不包含 break,控制流将会 继续 后续的 case,直到遇到 break 为止。
- 一个 switch 语句可以有一个可选的 default case,出现在 switch 的结尾。default case 可用于在上面所有 case 都不为真时执行一个任务。default case 中的 break 语句不是必需的。
c循环
for,while,do-while
- break
中止上一层(最近那层)的循环。 - continue
中止当前循环,开始下一次循环。
c函数
- 参数的调用
- 传值调用
不会影响外部参数 - 引用调用
通过引用传递方式,形参为指向实参地址的指针,当对形参的指向操作时,就相当于对实参本身进行的操作。
/* 函数定义 */
void swap(int *x, int *y)
{
int temp;
temp = *x; /* 保存地址 x 的值 */
*x = *y; /* 把 y 赋值给 x */
*y = temp; /* 把 temp 赋值给 y */
return;
}