C语言:变量 常量 数据类型 数组 操作符 关键字 指针 结构体 语句.....基本概念

1.数据类型
windows64位下:
char //字符数据类型 (1字节)
short //短整型 (1字节)
int //整形 (4字节)
long //长整型 (4字节)
long long //更长的整形 (8字节)
float //单精度浮点数 (4字节)
double //双精度浮点数 (8字节)
2.常量变量
变量的定义方法:
int a=10; float b=45.5; char c=‘w’;
变量的分类:
1.全局变量 2.局部变量

#include<stdio.h>
int a = 10;//全局变量
int main()
{
	int c = 4;//局部变量
	int b = 5;//局部变量
	printf("b=%d\n", b);
	system("pause");
	return 0;
}

局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束
全局变量的生命周期是:整个程序的生命周期
常量:
1.字符常量 2.const修饰的常量 3.#define定义的标识符常量
4.枚举常量

enum sex
{
	wo,
	shi,
};
int main()
{
	4;//字面常量
	5.3;
	const float c = 3.14f;//const修饰的常量
    #define MAX 100   //#define的标识符常量
	system("pause");
	return 0;
}

3.字符串+转义字符+注释
字符串:由双引号引起来的一串字符。
字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串内容。

转义字符:
在这里插入图片描述
注释
c语言注释:/* */ 不能嵌套注释
c++注释: //

数组
int array[5]={1,2,3,4,5}; //定义一个数组,最多放5个元素

int i = 0;
	int array[4] = { 1, 2, 3, 4 };
	for (i = 0; i < 4; i++)
	{
		printf("%d\n", array[i]);
	}

操作符
算术操作符:+ - * / %
移位操作符:>> <<
位操作符:& ^ |
赋值操作符:= += -= *= /= &= ^= |= >>= <<=
单目操作符:
在这里插入图片描述
逻辑操作符:&& 逻辑与 || 逻辑或
条件操作符:exp1?exp2:exp3
下标引用:[] () . ->

常见关键字
在这里插入图片描述
typedef 类型重命名
static
1.修饰局部变量–静态局部变量
2.修饰全局变量–静态全局变量
3.修饰函数–静态函数
static修饰局部变量改变了变量的生命周期,让静态局部变量出了作用域依然存在,到程序结束,生命周期才结束。
一个全局变量被static修饰,使得这个全局变量只能在本文件中使用,不能在其他源文件中使用。
一个函数被static修饰,使得这个函数只能在本源文件内使用,不能在其他源文件内使用。

#define定义常量和宏

#define MAX 100
#define add(x,y)(x+y)
int main()
{
	int sum = add(2, 3);
	printf("sum=%d\n", sum);
	system("pause");
    return 0;
}

指针
取出变量地址

int main()
{
	int a = 10;
	&a;
	printf("%p\n", &a);
return  0;
}

地址的存储,需要定义指针变量
int a=10;
int *p;
p=&a ;

指针变量的大小:指针大小在32位平台是4个字节,64位平台是8个字节。

结构体
struct Stu
{
char name[20];
int age;
char sex[5];
char id[5];
};

结构体初始化

int main()
{
	struct Stu s = { "王帆",22, "男","2827" };
	printf("name=%s age=%d sex=%s id=%s\n", s.name, s.age, s.sex, s.id);
	struct Stu *ps = &s;
	printf("name = %s age = %d sex = %s id = %s\n", ps->name, ps->age, ps->sex, ps->id);
	system("pause");
	return 0;
}

分支语句与循环语句
if语句

 int main()
{
	int a=0;
	scanf("%d",&a);
	if (a == 1)
	{
		printf("加油\n");
	}
	else
		printf("放弃\n");
	system("pause");
	return 0;
}

switch语句

int main()
{
	int day = 0;
	scanf("%d",&day);
	switch (day)
	{
	case 1:
		printf("周一\n");
		break;
	case 2:
		printf("周二\n");
		break;
	case 3:
		printf("周三\n");
		break;
	case 4:
		printf("周四\n");
		break;
	case 5:
		printf("周五\n");
		break;
	case 6:
		printf("周六\n");
		break;
	case 7:
		printf("周天\n");
		break;
	}
	default:
	break;
	system("pause");
	return 0;
}

当所有case 都不满足,就会执行default语句

while语句

int a = 0;
	while (a < 4)
	{
		a++;
		printf("%d\n", a);
	}

在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。 所以:while中的break是用于永久
终止循环的。

continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接跳转到while语句的判断部分,进行下一次循环的入口判断。

for语句
i

nt i = 0;
	for (i = 1; i < 10; i++)
	{
		printf(" %d" , i);
	}

函数
c语言库函数:
在这里插入图片描述
使用库函数必须包含对应的头文件
自定义函数
自定义函数和库函数一样,有函数名,返回值类型和函数参数
函数的组成:返回类型 函数名 函数参数

函数的参数
实参:真实传给函数的参数,实参可以是:常量,变量,表达式,函数
形参:形参指函数名后括号中的变量,形参当函数调用完后,自动销毁,只在函数中有效

函数的声明和定义
test.h 放置函数的声明
test.c 放置函数的实现

函数递归
递归的两个必要条件:
存在限制条件,当满足这个限制条件的时候,递归便不再继续
每次递归调用之后越来越接近这个限制条件。

void print(int a)
{
	if (a > 9)
	{
		print(a / 10);
	}
	printf(" %d\n", a % 10);
}
int main()
{
	int a = 567;
	print(a);
	system("pause");
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值