C语言学习(二)

选择语句

if 实例

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	int input = 0;
	printf("请输入0和1 >:");
	scanf("%d", &input);
	if (input == 1)
		printf("1\n");
	else
		printf("0\n");

	return 0;
}

循环语句
while实例

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>


int main()
{
	int line = 0;
	while (line < 20000)
	{
		printf("敲一行代码\n");
		line++;
	}
	printf("代码20000行啦\n");
	return 0;

函数

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

//函数的书写形式
int Add(int x, int y)
{
	int z = x + y;
	return z;
}
int main()
{
	int num1 = 10;
	int num2 = 20;
	int sum = 0;
	sum = Add(num1, num2);
	printf("sum = %d\n", sum);
	return 0;
}

数组
数组定义

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

//数组的定义
int main()
{
	int arr[10] = {1,2,3,4,5,6,7,8,9,10};//存放10位的数据
	//下标为0,1,2,3,4,5,6,7,8,9
	/*printf("%d\n", arr[4]);*/

	int i = 0;
	while (i < 10)
	{
		printf("%d\n", arr[i]);
		i++;
	}
	return 0;
}

操作符
算术操作符

+
- 
* 
/ 
% 取模(取余数)

移位

>> 右移
<< 左移

实例

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>


int main()
{
	//移位操作符
	int a = 1;
	//00000000000000000000000000000001
	int b = a << 2;
	//00000000000000000000000000000100
	printf("%d\n", b);
	return 0;
}

位操作符

&	按位与
^	按位异或
|	按位或

赋值操作符

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

实例

//赋值操作符
int main()
{
	int a = 10;

	a = a + 10;
	a += 10;

	a = a - 20;
	a -= 20;

	a = a & 2;
	a &= 2;

	return 0;
}

单目操作符

!			逻辑反操作
-			负值
+			正值
&			取地址
sizeof		操作数的类型长度
~			对一个数的二进制按位取反
--			前置、后置--
++			前置、后置++
*			间接访问操作符(解引用操作符)
(类型)		强制类型转换
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

//单目操作符
//双目操作符
//三目操作符
int main()
{
	int a = 10;
	int b = 20;
	int c = 0;
	int d = 0;
	int e = 0;
	c = a + b;// + 双目操作符,有两个操作数
	d = a++; //后置++,先使用,再++
	printf("%d %d\n", d, a);
	e = ++a;//前置++,先++,再使用
	printf("%d %d\n", e, a);
	int a1 = (int)3.14;    //double -> int
	return 0;
}

关系操作符

>
>=
<=
!=
==

逻辑操作符

&&
||

条件操作符

exp1 ? exp2 : exp3

逗号操作符

exp1, exp2, ..., expN

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

[]
()
.
->
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int Add(int x, int y)
{
	int z = 0;
	z = x + y;
	return z;
}
int main()
{
	int arr[10] = { 0 };
	arr[4];//[] - 下标引用操作符
	int a = 10;
	int b = 20;
	int sum = Add(a, b);//()-函数调用操作符

	return 0;
}
//还缺少 & * . ->

常见关键字

在这里插入图片描述

register 寄存器关键字
int main()
{
	register int a = 10;//建议把a定义成寄存器变量
	return 0;
}

static 静态

struct 结构体关键字

typedef 类型定义语句

union  联合体(共用体)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	//typedef - 类型定义 -类型重定义
	typedef unsigned int u_int;
	u_int num2 = 20;
	return 0;
}

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

//static
void test()
{
	//int a = 1;
	//a++;
	//printf("a = %d\n", a);//会输出5个a=2

	static int a = 1;//a 是一个静态的局部变量
	a++;
	printf("a = %d\n", a);
}
int main()
{
	int i = 0;
	while (i < 5)
	{
		test();
		i++;
	}
	return 0;
}

//static修饰的局部变量/全局变量/函数,都只能作用于文件的内部,无法拥有外部链接属性

函数的使用

int Add(int x, int y)
{
	int z = x + y;
	return z;
}
//函数的使用
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

void test()
{
	//int a = 1;
	//a++;
	//printf("a = %d\n", a);//会输出5个a=2

	static int a = 1;//a 是一个静态的局部变量
	a++;
	printf("a = %d\n", a);
}

extern int Add(int, int);
int main()
{
	int a = 10;
	int b = 20;
	int c = Add(a, b);

	int i = 0;
	while (i < 5)
	{
		test();
		i++;
	}
	return 0;
}

#define定义常量和宏

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

//宏
#define MIN 100 //定义标识符常量
//函数定义方式
int Max(int x, int y)
{
	if (x > y)
		return x;
	else
		return y;
}

//宏定义方式
#define MAX(X,Y) (X>Y?X:Y) //将MAX(X,Y)替换成后面的表达式
int main()
{
	int min = MIN;
	int a = 10;
	int b = 20;
	//函数方式求最大值
	int max = Max(a, b);
	
	//宏方式求最大值
	max = MAX(a, b);

	return 0;
}

指针

内存
生活中通过地址找到空间/房间

32位
64位
指的是有32/64根地址线

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	int a = 10;//4个字节
	//&a;//取地址
	//printf("%p\n", &a);
	//return 0;
	
	//有一种变量是永安里存放地址的-指针变量
	int* p = &a;//int* 是p的类型
	*p = 20;//* - 解引用操作符,将20送入*p指向的地址
	printf("a = %d\n", a);

	return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

//字符型指针
int main()
{
	char ch = 'w';
	char* pc = &ch;
	*pc = 'a';
	printf("%c\n", ch);
	return 0;
}

在这里插入图片描述

结构体

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

//结构体
//如果要描述一本书
//书名+作者+出版社+定价+书号...
//复杂对象

//创建一个结构体类型
struct Book
{
	char name[20];//C语言程序设计
	short price;//55
};

int main()
{
	//利用结构体类型-创建一个该类型的结构体变量
	struct Book b1 = {"C语言程序设计", 55};
	printf("书名:%s\n", b1.name); //使用 .操作符
	printf("价格:%d\n", b1.price);//使用 . 操作符
	b1.price = 15;
	printf("修改后的价格:%d\n", b1.price);
	return 0;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值