02初识基本语法(重要)

分支语句

int main()
{
	int input = 0;
	printf("加入比特\n");
	printf("你要好好学习吗?(1/0)>: ");
	scanf("%d", &input);//1/0
	if (input == 1)
		printf("好offer\n");
	else
		printf("卖红薯\n");
	return 0;
}

循环语句

C语言中如何实现循环呢?

  1. while语句
  2. for语句
  3. do…while语句
int main()
{
	int line = 0;
	printf("加入比特\n");

	while (line < 20000)
	{
		printf("敲一行代码:%d\n",line);
		line++;
	}
	if(line>=20000)
		printf("好offer\n");
	return 0;
}

函数

//1.自定义函数
Add(int x, int y)
{
	return x + y;
}

int main()
{
	int num1 = 10;
	int num2 = 20;
	int sum = 0;
	int a = 100;
	int b = 200;
	//sum = num1 + num2;
	sum = Add(num1, num2);
	//sum = a + b;
	sum = Add(a, b);
	sum = Add(2, 3);
	printf("sum=%d\n", sum);

	return 0;
}

2.库函数

数组

C语言中数组定义:一组相同类型元素的集合。

注意:数组的下标从0开始

int main()
{
	//int a = 1;
	//int b = 2;
	//int c = 3;
	//int d = 4;
	int arr[10] = {1,2,3,4,5,6,7,8,9,10};//定义一个存放10个整数数字的数组
    //数组的类型 -> int[10] - 可以把数组和数组中的元素之间的关系想象成文件夹与文件的关系
	for (int i = 0; i < 10; i++)
	{
		printf("%d ", arr[i]);
	}
	//printf("%d\n", arr[4]); //下标的方式访问元素 - arr[下标]
	//char ch[20];
	//float arr2[5];
	return 0;
}

操作符

//int main()
//{
//	int a = 10;
//	int b = 20;
//	//条件操作符
//	int max = (a > b ? a : b);
//	//int max=0;
//	//if (a > b)
//	//	max = a;
//	//else
//	//	max = b;
//	return 0;
//}

//int main()
//{
//	//真 - 非0
//	//假- 0
//	//&& - 逻辑与
//	//|| - 逻辑或
//	int a = 0;
//	int b = 5;
//	//int c = a && b;
//	int c = a || b;
//	printf("%d\n", c);
//	return 0;
//}

//int main()
//{	
//	//强制类型转换
//	int a = (int)3.14;
//	return 0;
//}

//int main()
//{
//	int a = 10;
//	//int b = a++;//后置++,先使用,再++
//	//int b = ++a;//前置++,先++,再使用
//	//int b = a--;//后置--,先使用,再--
//	int b = --a;//前置--,先--,再使用
//	printf("a = %d b = %d\n", a, b); 
//	return 0;
//}

//int main()
//{
//	int a = 0; //一个字节,32bit位
//	int b = ~a;
//	//~ - 按位(二进制)取反
//	//00000000 00000000 00000000 00000000
//	//11111111 11111111 11111111 11111111
//	//原码、反码、补码
//	//负数在内存中存储的时候,存储的是二进制的补码
//	//11111111 11111111 11111111 11111111
//	//11111111 11111111 11111111 11111110
//	//10000000 00000000 00000000 00000001
//	printf("%d\n", b);//所以这里打印的是这个数的原码
//  //原码
//  //11111111 11111111 11111111 11111111
//  //10000000 00000000 00000000 000000000
//  //1*2^32-1
//	return 0;
//}

//int main()
//{
//	//字符串的结束标志:'\0'
//	//"abcdef"
//	//'\0' - 转义字符 - ASCII为 0
//	//'0' - 数字 - ASCII为 48
//
//	//EOF - end of file - 文件结束标志 - 值为-1
//}

int main()
{
	int arr[10] = { 0 };//10个整型元素的数组
	int sz = 0;
	//10*sizeof(int) = 40
	printf("%d\n", sizeof (arr));
	//计算数组的元素个数
	//个数 = 数组总大小 / 每个元素的大小
	sz = sizeof(arr) / sizeof(arr[0]);
	printf("sz = %d\n", sz);
	//int a = 10;
	sizeof 计算的是变量/类型所占空间的大小,单位是字节
	//printf("%d\n", sizeof(a));//4
	//printf("%d\n", sizeof(int)); //4
	//printf("%d\n", sizeof a);//4
	return 0;
}

单目操作符
双目操作符
三目操作符
//int main()
//{
//	//int a = 10;
//	//int b = 20;
//	//a + b; //+ 双目操作符
//	//C语言中我们表示真假
//	//0 - 假
//	//非0 - 真
//	int a = 10;
//	printf("%d\n", a);
//	printf("%d\n", !a);
//	return 0;
//}

//int main()
//{
//	//复合赋值符
//	//+= -= *= /= %= >>= <<= &= |= ^=
//	int a = 10;
//	a = 20; // = 赋值  == 判断相等
//	a = a + 10;
//	a += 10;
//	a = a - 20;
//	a -= 20;
//	a = a & 2;
//	a &= 2;
//	return 0;
//}

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

//int main()
//{
//	//移位操作符
//	//<< 左移
//	//>> 右移
//	int a = 1;
//	//整型1占4个字节 - 32bit位
//	// 00000000 00000000 00000000 00000001
//	int b = a << 1;
//	// 00000000 00000000 00000000 00000010
//	printf("%d\n", b); //2
//	return 0;
//}

//int main()
//{
// //除法
//	//int a = 5 / 2; //2
// //取模
//	int a = 5 % 2; //1
//	printf("%d\n", a);
//	return 0;
//}

关键字

//1.static 修饰局部变量
//局部变量的生命周期变长
//2.static 修饰全局变量
//改变了变量的作用域 - 让静态的局部变量只能在自己所在的源文件内部使用
//出了源文件就没法再使用了
//3.static 修饰函数
//也是改变了函数的作用域 - 不准确
//static修饰函数改变了函数的链接属性
//外部链接属性 -> 内部链接属性

//声明外部函数
extern int Add(int, int);

int main()
{
	int a = 10;
	int b = 20;
	int sum = Add(a, b);
	printf("%d\n", sum);
	return 0;
}

//int main()
//{
//	//extern - 声明外部符号的
//	extern int g_val;
//	printf("g_val = %d\n", g_val);
//	return 0;
//}

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

//int main()
//{
//	//int float;//error
//	//typedef - 原类型 - 重定义类型
//	typedef unsigned int u_int;
//	unsigned int num = 20;
//	//张三 - 小三
//	u_int num2 = 20;
//	return 0;
//}

//int main()
//{
//	//register int a = 10;//建议把a定义成寄存器变量
//	int a = 10;
//	a = -2;
//	//int 定义的变量是有符号的
//	//signed int;
//	unsigned int num = 1;
//	//struct - 结构体关键字
//	//union - 联合体/共用体
//	return 0;
//}

//int main()
//{
//	auto int a = 10;//局部变量-自动变量
//	return 0;
//}

#define 定义常量和宏

//#define 定义标识符常量
//#define MAX 100;
//#define 定义宏 - 带参数

//函数的实现
Max(int x, int y)
{
	return x > y ? x : y;
}

//宏的定义
#define MAX(X,Y) (X>Y?X:Y)

int main()
{
	//int a = MAX;
	int a = 10;
	int b = 20;
	//函数
	int max = Max(a, b);
	printf("max = %d\n", max);
	//宏的方式
	max = MAX(a, b);
	//max=(a>b?a:b);
	printf("max = %d\n", max);
	return 0;
}

指针

int main()
{
	printf("%d\n", sizeof(char*)); //8 - 8byte
	printf("%d\n", sizeof(short*)); //8
	printf("%d\n", sizeof(int*)); //8
	printf("%d\n", sizeof(double*)); //8
	//double d = 3.14;
	//double* pd = &d;
	//printf("%d\n", sizeof(pd));//32-4   64-8
	/**pd = 5.5;
	printf("%lf\n", d);
	printf("%lf\n", *pd);*/
	//int a = 10; //向内存申请了4个字节的空间
	printf("%p\n", &a);
	//int* p = &a; //p是一个变量 - 指针变量
	printf("%p\n", p);
	//*p = 20;//* - 解引用操作符/间接访问操作符
	//printf("a = %d\n", a);
	return 0;
}

指针原理图:
在这里插入图片描述

结构体类型

#include<stdio.h>
#include<string.h>

//结构体
//char int double...
//人 = 3.14
//书 - 复杂对象
//书名+作者+出版社+定价+书号...
//名字+身高+年龄+身份证号...
//复杂对象 - 结构体 - 我们自己创造出来的一种类型
//
//创建一个结构体类型
struct Book
{
	char name[20]; //C语言程序设计
	short price; //55
};

int main()
{
	//利用结构体类型创建一个该类型的结构体变量
	struct Book b1 = { "C语言程序设计",55 };
	strcpy(b1.name,"C++");//string copy - 字符串拷贝
	printf("%s\n", b1.name);
	//b1.price = 15;

	//struct Book* pb = &b1;
	//利用pb打印书名和价格
	//.		结构体变量.成员
	//->	结构体指针->成员
	
	//printf("%s\n", pb->name);
	//printf("%d\n", pb->price);

	//printf("%s\n", (*pb).name);
	//printf("%d\n", (*pb).price);

	//printf("书名:%s\n", b1.name);
	//printf("价格:%d元\n", b1.price);
	//b1.price = 15;
	//printf("修改后的价格:%d元\n", b1.price);
	return 0;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值