c语言基础

一、第一个C语言程序

开始写程序时,优先写出c语言的主函数,构建基本框架。

#include <stdio.h>
int main()
{
	return 0;
}

#include <stdio.h>
void main()
{
	
}

这是主函数的两种基本框架,在什么时候用什么在后面会有讲解,起初只需记忆怎么写即可。其中 #include是一种预处理命令,它的作用是找到尖括号(或者英文双引号)中的文件,并将它包含到当前文件,被包含的文件中的文本将替换源代码文件(就是我们正在编写的东西)中的#include指令。这样才能使用printf和scanf等函数。

二、数据类型

char//字符数据类型//就是不是数字的字符
short//短整型//就是数字小(绝对值)的整数,很少用
int //整型//就是整数
long//长整型//就是数字(绝对值)大的整数
long long//更长的整型//很少用
float//单精度浮点数//就是小数
double//双精度浮点数//小数位数多的小数

为什么会有这么多数据类型呢?首先我们知道现实生活中有小数,整数,字符等多种类型,而这里不同的数据类型可以表示不同数据。那为什么整数类型有int 和 short 还用long、long long,小数有float、double这么多种类呢?这又是因为每一个数据类型所占用的内存不同,为了使内存空间能够物尽其用,所以规定不同的数据类型,避免浪费空间。
各个数据类型所占内存
从这里很容易看出各个数据类型所占内存,看见我们在写代码时用注意各个数据类型的运用,避免内存的浪费和不足。至于sizeof函数,其实就是一个计算内存空间的函数而已,记忆即可。

三、变量和常量

变量

在写编程时,需要变量才能生成自己所需数据,形式为变量类型+变量名。变量分为全局变量和局部变量,如图为两种变量的形式, 顾名思义,全局变量就是整个工程都能用的,而局部变量只能在{}内部使用,这里的{}不仅限于主函数的大括号,在后面的循环或判断语句中的{}也同样适用。
在这里插入图片描述

常量

我们一般用const使变量转化为常量。
在这里插入图片描述

这是没有被修饰的变量,可见a在其中可以被修改。

在这里插入图片描述

这里可以看见一旦用const修饰变量后,这个就变成了常量,无法被修改。

三、字符串

#include <stdio.h>
int main()
{
	char a[] = "abcd";
	char b[] = { 'a','b','c','d' };
	printf("%s",a);
	printf("%s", b);
	return 0;
}

因为字符串是多个字符的集合,所以会用到数组的概念,这里先不做叙述,后面板块再说。可以看见两种写法都包含a,b,c,d四种字符,那他们打印下来会是什么样呢?我们看一下。
在这里插入图片描述
为什么第二个代码打印出来会出现烫烫的乱码呢?我们用c语言监视窗口看一下。
在这里插入图片描述
我们可以看见第一个代码比第二个多了个’\0’,为什么这个会导致出现乱码呢?‘\0’是字符串的结束标志,打印函数只有碰到’\0’才会停下来,但arr2数组里并不包含,所以机器会不停找,最后打印出乱码。所以后面定义字符串时,一定要保证有’\0’啊。

四、转义字符

下面看一些转义字符。

’ 表示单引号’

" 表示双引号"

\表示一个反斜杠

\n表示换行

\r表示回车

\t表示水平制表符,相当于按下tab键,还有一些转义字符没有提及,因为刚开始用的很少。
在这里插入图片描述

我们用各个符合对应的ASGII码就可以直接找到该符号了,现在请将空格,0,a,A对应的ascii码值记住,这是最常用的符号。空格:32 0:48 A:65 a:32。

六、判断和选择语句

1.if语句

#include <stdio.h>
int main()
{
	if (判断条件)
	{
	执行内容
	}
	return 0;
}

这是if语句的基本形式,比较简单易懂,就不做叙述了。这里补充一点,人们规定判断结果为真的表达式的值为1,否则为0。值为1时,if语句就会进行,反之则中断。

  1. if…else语句
    一个 if 语句 后可跟一个 else 语句,else 语句在它之后的语句结果为假时执行。基本形式和if一样,当if语句为假时进行。
    3.if…else if…else 语句
#include <stdio.h>
int main()
{
	int a = 1;
	if (a == 1)
	{
		printf("hello");
	}
	else if (a == 2)
		printf("hi");
	else
		printf("你好");
	return 0;
}

当a取三种不同值时,用if else if else语句就能很好表示出来。当然,有其余取值依然可以以此类推继续用该语句表示,上面所写c程序中a的值可以用scanf函数来输入,然后可以用不同a的值来输出不同的结果。
4.switch语句
switch语句和if语句一样都能选择和判断,但判断条件也有区别。switch语句的判断为case,且case后面只能接数字,且数字之间有空格。
举个例子

#include <stdio.h>
int main()
{
	int a = 0;
	scanf_s("%d", &a);
	switch (a % 3)
	{
	case 0:
		printf("余数为0\n");
		break;
	case 1:
		printf("余数为1\n");
		break;
	case 2:
		printf("余数为2\n");
		break;
	default:
		printf("该数为负数");
		break;
	}
	return 0;
}

这样通过输入a的值能够判断a/3的余数,和a是否为负数。相信大家看见break会有点疑惑,为什么要加break,if语句中就没有break。注意,这里的break一定要加,不然该语句就会一直运行。如果这里把break去掉
在这里插入图片描述
我们可以看见无论a取何值,这里都会完成所有判断并打印这些句子,这样就达不到我们的目的了。所以后面写代码时一定不要忘了加break来中断语句。

七、循环

1.for循环

在这里插入图片描述

规范、易读的写法如上,也可以在for后的括号定义计数器变量。但有些编译器会报错。
这里还有一个易错点给大家补充一下,大家不妨猜一下,经历for循环后i会变成什么值?
在这里插入图片描述

这里可以看见i变成5了,这是为什么呢?因为在判断i=4<5时,i++操作使i从4变成了5,这时不满足i<5的情况,for循环就会在这里结束,i的值变成了5,所以在循环内打印并不会出现5,而一旦出了循环i就变成5了。

2.while循环

在这里插入图片描述
这是while循环的规范写法,和for循环的用法大同小异只是把计数器放在了花括号里面。不过这里要注意,i++和printf的位置一定不能写反了,一旦写反了就会出现程序错误,还不易发现。
在这里插入图片描述
以后一定要注意规范书写,不要因为这种小失误导致后面检查的时候崩溃。

3.do while语句

这个用得非常少,了解一下即可。
在这里插入图片描述
记住这个do while语句是先循环再判断,和前面两个循环略有不同。

六、函数

在c语言中,我们会经常使用printf()函数来打印,但使用这个函数是有前提条件的,必须包含头文件<stdio.h>,这是c语言的一个库,想要运用函数必须打出对应头文件,头文件里包含了一些函数。函数分为自定函数和主函数。

1.自定函数

顾名思义,就是自己命名的函数,不过运用这类函数要先声明,自定函数一般要搭配传参使用,这里先提一下,后面再详说。

2.主函数

主函数就是每次写c程序必备的main,主函数是唯一的。

七、数组

1.一维数组

从左至右依次为数组数据类型,数组名,数组元素个数,数组元素。

#include <stdio.h>
int main()
{
	int a[] = { 1,2,3,4,5,6 };
	return 0;
}

在这里,"[ ]"内的数字可以不用写,编译器会根据元素个数来改变它
在这里插入图片描述

这是数组的下标,什么意思?通过下标,可以找到数组中对应元素,比如
在这里插入图片描述
可以看到,我们通过数组下标,找到了对应元素,大家要记住数组的下标是从0开始,一定不要记错!
这里我给大家打一个如何用数组打印1-10数字的c语言程序。
在这里插入图片描述
这就是通过咱们的循环和数组下标完成的一个简单的c程序。

2.二维数组

一维数组和二维数组的区别表面上看来是一维数组一个方括号,二维数组两个方括号,有的同学可能认为二维数组就是两个一维数组,但其中差别还挺大的,二维数组第一个方括号代表列,第二个方括号代表行,而一维数组中没有行。一维数组和二维数组的用法大同小异,大家可以根据一维数组的知识点深入学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值