学习-002-C语言入门-while、函数

while循环

#include<stdio.h>
int main()
{
	int line = 0;
	printf("来武汉混\n");
	//循环10次
	while (line < 10)//条件语句 当line=10时跳出循环
	{
		printf("%d.敲一行代码\n",line+1);
		line++;
	}
	printf("好生活!!!");
	return 0;
}

函数

#include<stdio.h>
//自定义函数 Sum()
int Sum(int x, int y)
{
	int z = x + y;
	return z;
}
int main()
{
	int num1 = 100, num2 = 200, num3 = 0, num4 = 0;
	num3 = num1 + num2;
	printf("num1 + num2=%d\n", num3);
	num4 = Sum(num1, num2);
	printf("sum=%d\n", num3);//库函数printf()
	return 0;
}

数组

#include<stdio.h>
int main()
{
	//定义一个int类型的数组 长度为10
	int arr[10] = { 9,8,7,6,5,4,3,2,1,0 };
	int i = 0;
	while (i < 10)
	{
		//数组下标从0开始
		//arr[i] 通过下标访问数组元素
		printf("第[%d]数字:%d\n", i, arr[i]);
		i++;
	}
	return 0;
}

操作符

算术操作符

+ - * / %

#include<stdio.h>
int main()
{
	float a;
	int b;
	a = 1 + 2;//加法
	printf("1 + 2 = %f\n", a);
	a = 10 - 3;//减法
	printf("10 - 3 = %f\n", a);
	a = 2 * 6;//乘法
	printf("2 * 6 = %f\n", a);
	a = 5.0 / 2.0;//除法
	printf("5 / 2 = %f\n", a);
	b = 5 % 2;//取模/计算余数
	printf("5 %% 2 = %d\n", b);
	return 0;
}

示例结果
示例结果

位移操作符

>> <<

#include<stdio.h>
int main()
{
	//移(2进制)位操作符
	//左移<<
	//右移>>
	int a = 1;
	//整型1占4个字节-32个bit位
	//a的二进制序列->00000000000000000000000000000001
	int b = a << 1;//左移1位 a->00000000000000000000000000000010
	printf("%d\n", b);//b=2
	return 0;
}

示例结果
示例结果

位操作符:

& ^ |

#include<stdio.h>
int main()
{
	//2进制 位操作
	//& 按位 与
	//| 按位 或
	//^ 按位 异或
	int a = 3;//011
	int b = 5;//101
	int c = a & b;
	//011
	//101
	//001 等于十进制1
	printf("a & b=%d\n", c);
	c = a | b;
	//011
	//101
	//111 等于十进制7
	printf("a | b=%d\n", c);
	//异或的计算规律:
	//对应的二进制位相同,则为0
	//对应的二进制位相异,则为1
	c = a ^ b;
	//011
	//101
	//110 等于十进制6
	printf("a ^ b=%d\n", c);
	return 0;
}

赋值操作符

*= += -= = /= &= ^= != >>= <<=

#include<stdio.h>
int main()
{
	int a = 10;
	a = 20;//赋值  == 是比较
	//复合赋值符
	a += 10;//等同于 a=a+10
	a -= 20;//等同于 a=a-10
	a &= 2;//等同于 a=a&2
	return 0;
}

单目操作符

符号说明
逻辑反操作
-负值
+正值
&取地址
sizeof操作数的类型长度(以字节为单位)
~对一个数的二进制按位取反
前置、后置–
++前置、后置++
*间接访问操作符
(类型)强制转换类型
#include<stdio.h>
int main()
{
	int a = 10;
	int b = 20;
	//C语言中 0:假  非0:真
	printf("a = %d\n", a);
	printf("!a = %d\n", !a);//! 逻辑反操作
	int c = -5 + 3;//- 负数
	printf("-5 + 3 = %d\n", c);
	//sizeof 计算所占空间的大小,单位是字节
	printf("sizeof(a)=%d\n", sizeof(a));//4
	printf("sizeof a=%d\n", sizeof a);//当a为变量是可省略()
	int arr[] = { 0,1,2,3,4,5,6,7,8,9 };
	printf("sizeof(arr)=%d\n", sizeof(arr));//4*10=40
	int d = sizeof(arr) / sizeof(arr[0]);//计算数组长度
	printf("计算数组的长度=%d\n", d);
	//~:按位(二进制位)取反
	int m = 0;
	//  m ->000000000000000000000000
	// ~m ->111111111111111111111111
	// 反码->111111111111111111111110
	//原码->100000000000000000000001
	//二进制位 第一位是补码 0 正 1 负
	int n = ~m;//-1
	printf("~0=%d\n", n);//使用的,打印的是这个数的原码
	//++
	int k = 10;
	int t = k++;//后++:先把k的值10赋值给t,然后再++ 
	printf("t=%d  k=%d\n", t, k);
	t = ++k;//先++:k先+1然后再把k赋值给t
	printf("t=%d  k=%d\n", t, k);
	// (类型)转换
	int h = 3.15;
	//printf("3.15=%d\n", h);//代码提示有警告
	printf("强制转换3.15=%d\n", (int)h);//强制转换为int类型
	return 0;
}

关系操作符

逻辑操作符

#include<stdio.h>
int main()
{
	//真-非0
	//假-0
	//&& 逻辑与
	int a = 3;
	int b = 5;
	int c = 0;
	int d = a && b;// a为真 并且  b为真  结果为真
	printf("a && b=%d\n", d);
	d = c && a;// c为假 并且  a为真  结果为假
	printf("a && b=%d\n", d);
	//||:逻辑或,只需有一个为真,结果为真
	d = c || a;
	printf("c || a=%d\n", d);
	return 0;
}

示例结果

条件操作符

#include<stdio.h>
int main()
{
	//比较a b 谁最大
	int a = 10;
	int b = 20;
	int max = 0;
	//方法一:比较大小
	if (a > b)
		max = a;
	else
		max = b;
	printf("max=%d\n", max);
	//方法二:三目运算
	max = a > b ? a : b;//条件操作符
	printf("max=%d\n", max);
	return 0;
}

示例结果

下标引用、函数调用和结构成员

#include<stdio.h>
int Add(int x, int y)
{
	return x + y;
}
int main()
{
	int arr[] = { 6,0,1,2,3 };
	int a = arr[2];//[]-下标引用操作符
	printf("a=%d\n", a);
	int sum = Add(arr[0], arr[2]);//()-函数调用操作符
	printf("sum=%d\n", sum);
	return 0;
}

关键字

static

sum.c

static int g_val = 2000;

test.c

#include<stdio.h>
void Test()
{
	int a = 0;
	static int b = 0;//第一次执行后,后面不在进行赋值0操作
	//extern int g_val;//错误,无法解析的外部符号 g_val
	//外部函数被static 修饰后  同样也无法使用
	a++;
	b++;
	printf("a=%d\n", a);
	printf("b=%d\n\n", b);
}
int main()
{
	int a = 0;
	while (a < 5)
	{
		Test();
		a++;
	}
	return 0;
}

示例结果
示例结果

#define 定义常量和宏

#include<stdio.h>
//#define 定义标识符常量
#define MAXVALUE 100
//定义宏
#define MAX1(X,Y)(X>Y?X:Y)
int Max(int x, int y)
{
	return x > y ? x : y;
}
int main()
{
	int a = 10;
	int b = 20;
	//MAXVALUE 不可修改
	printf("MAX=%d\n", MAXVALUE);
	//函数方式
	int max = Max(a, b);
	printf("max=%d\n", max);
	//宏方式
	max = MAX1(a, b);//等价于 a>b?a:b
	printf("max=%d\n", max);
	return 0;
}

示例结果
示例结果

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值