C语言概述(二)-- 注释,选择、循环结构,函数,数组,操作符,关键字

  1. 注释
  2. 选择结构
  3. 循环结构
  4. 函数
  5. 数组
  6. 操作符
  7. 常见关键字

1、注释

    /* */ 多行注释,不能嵌套注释(/* /* ...*/ */,第一三会配对,第四个不是注释,会报错)
    // 单行注释
    #if 0---#endif 可注释代码块,将0改为1就取消注释了

2、选择结构
    
    if-else:
    其按从上到下的顺序依次判断后选择执行

#include<stdio.h>

void main()
{
	int a, b, max;
	printf("请输入要比较的两个整数:\n");
	scanf_s("%d %d", &a, &b);
	if (a > b)
	{
		max = a;
		printf("max = %d\n", a);
	}
	else if(a < b)
	{
		max = b;
		printf("max = %d\n", b);
	}
	else
	{
		printf("两者相等");
	}
	return 0;
}

3、循环结构
3.1 for循环:
    for(循环变量初始值;判断条件;循环变量操作)

void main()
{
	int i;
	int sum = 0;
	//前++,先自增,再参与运算
	//后++,先参与运算,再自增
	//前++比后++少一个存当前值的临时变量
	for (i = 0; i <= 100; ++i) 
	{
		sum += i; //sum = sum + i; //求1到100的和
	}
	printf("1 + 2 + ... + 100 = %d\n", sum);
}

关于前自加和后自加:

void main()
{

	int a = 0;
	printf("%d %d %d %d\n", a++, ++a, a++, ++a); //3 4 1 4
	//分号之前就进行了前自加运算,不同的平台结果可能不同

	int b = 0;
	int bb = (b++) + (b++);
	printf("%d\n", bb); //0 = 0+0

	int c = 0;
	int cc = (c++) + (++c);
	printf("%d\n", cc); //2 = 1+1

	int d = 0;
	int dd = (++d) + (++d);
	printf("%d\n", dd); //4 = 2+2

	int e = 0;
	int ee = (++e) + (e++);
	printf("%d\n", ee); //2 = 1+1
	
}

3.2 while循环

void main()
{
	int i = 0;
	int sum = 0;
	while (i <= 100)
	{
		sum += i;
		++i;
	}
	printf("sum = %d\n", sum);
}

3.3 do-while循环

void main()
{
	int i = 0;
	int sum = 0;
	do
	{
		sum += i;
		++i;
	} while (i <= 100);
	printf("sum = %d\n", sum);
}

4、函数
    
    简化代码,代码复用
    函数名、返回值、参数
    简单的示例:

int Maxvalue(int a, int b)
{
	int max;
	if (a > b)
	{
		max = a;
		printf("max = %d\n", a);
	}
	else if (a < b)
	{
		max = b;
		printf("max = %d\n", b);
	}
	else
	{
		printf("两者相等");
	}
	return 0;
}

void main()
{
	int a, b;
	printf("请输入要比较的两个整数:\n");
	scanf_s("%d %d", &a, &b);
	Maxvalue(a, b);

5、数组

#include<stdio.h>
int arrw[5]; //未初始化
void main()
{
	//int arr[10]; //空间大小为10,下标从0开始,arr是空间名
	
	for (int i = 0; i < 5; ++i)
	{
		printf("%d\n", arrw[i]);
		/*0
		  0
		  0
	 	  0
		  0*/
	}

	printf("\n");

	int arr1[5]; //完全未初始化的数组
	for (int i = 0; i < 5; ++i)
	{
		printf("%d\n", arr1[i]);
		/*-858993460
		  -858993460
		  -858993460
		  -858993460
		  -858993460*/
	}
	printf("\n");

	int arr2[5] = {1,2}; //未完全初始化的数组,未初始化部分用0填充
	for (int i = 0; i < 5; ++i)
	{
		printf("%d\n", arr2[i]);
		/*1
		  2
		  0
		  0
		  0*/
	}

}

6、操作符   
    
    算术操作符:+ - * / %
    
    移位操作符:>>  <<
    
    位操作符:& ^ |
    
    赋值操作符:= += -= *= /= &= ^= |= >>= <<=
    
    单目操作符:
        ! 逻辑取反
        - 负值
        + 正值
        & 取地址
        sizeof 操作数的类型长度,以字节为单位
        ~ 对一个数的二进制按位取反
        -- 自减
        ++ 自增
        * 间接访问操作符(解引用操作符)
        (类型) 强制类型转换
    
    关系操作符:> >= < <= != ==
    
    逻辑操作符:&& ||
    
    条件操作符:exp1? exp2 : exp3
    
    逗号表达式:exp1, exp2, ...expn
    
    下标引用、函数调用和结构成员:[] () . ->

void main()
{
	int a = 1;
	int b = 2;
	int v = a || ++b;
	printf("v = %d\n", v); //1
	printf("b = %d\n", b); //2,逻辑或运算为短路运算,前面为真时,后面将不参与运算
}

7、常见关键字
    auto break case char const continue default do double else enum
    extern float for goto if int long register return short signed
    sizeof static struct switch typedef union unsigned void volatile while

7.1 关键字typedef
    类型定义,可以理解为类型的重命名

#include<stdio.h>

typedef unsigned int u_int; //类型定义,把原来的类型重新取了个名字
#define u_int_32 unsigned int  //宏定义

void main()
{
	//以下三种方式定义无符号整型都可以
	unsigned int a = 1;
	u_int b = 1;
	u_int_32 c = 3;
}

7.2 关键字static
    static用来修饰变量和函数:
        静态局部变量
        静态全局变量
        静态函数


    (1)static修饰局部变量:    
        改变了变量的生命周期,让静态局部变量出了作用域依然存在直到程序结束,生命周期才结束

代码1:

void test()
{
	int i = 0;
	i++;
	printf("%d", i);
}

void main()
{
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		test(); //1111111111
	}
	return 0;
}

代码2:

void test()
{
	static int i = 0; //static修饰局部变量
	i++;
	printf("%d", i);
}

void main()
{
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		test(); //12345678910
	}
	return 0;
}

(2)static修饰全局变量:
        一个全局变量被static修饰,使得这个全局变量只能在本源文件内使用,不能在其他源文件内使用。

代码1:

int g_val = 2018;

void main()
{
	printf("%d\n", g_val); //2018
	return 0;
}

代码2:编译时会出现连接性错误

//add.c 文件中
static int g_val = 2018;

//test.c 文件中
void main()
{
	printf("%d\n", g_val); 
	return 0;
}

(3)static修饰函数:
        一个函数被static修饰,使得这个函数只能在本源文件内使用,不能在其他源文件内使用。

代码1:

int Add(int x, int y)
{
	return x + y;
}

void main()
{
	printf("%d\n", Add(2, 3)); //5
	return 0;
}

代码2:编译时会出现连接性错误

//add.c文件中
static int Add(int x, int y)
{
	return x + y;
}

//test.c文件中
void main()
{
	printf("%d\n", Add(2, 3)); 
	return 0;
}

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值