小白都能看懂的C语言入门教程

C语言入门教程

1. 第一个C语言程序HelloWorld

#include<stdio.h>
int main() {
	printf("HelloWorld");
}

2. C语言的数据类型

(1)数据类型分类

1.char 字符数据类型 ,长度1

2.short 短类型数据类型,长度4

3.int 整型数据类型,长度2

4.long 长整型,长度4

5.long long 更长的整型,长度8

6.float 单精度浮点数,长度4

7.double 双精度浮点数,长度8

在这里插入图片描述

(2)长度计算使用sizeof(数据类型参数);

(3)输出所使用的符号

short		%hd
int			%d
long		%ld
long long	%lld
float		%f
double		%lf
char		%c

3. 常量变量的使用

(1)变量的定义

变量类型 变量名(=初始化数据);

(2)常量的定义

常量顾名思义,就是不可改变的变量,使用修饰词const:

示例:

#include<stdio.h>
int main() {
	const int a = 10;
	a = 20;
	printf("%d\n",a);
}

报错图:

在这里插入图片描述

4. 自定义标识符#define

(1)如何定义标识符

一般在#include<stadio.h>下面在main上面进行定义

#define 常量名 值

#include<stdio.h>
#define MAX 50
int main() {
	printf("%d",MAX);
	return 0;
}

在这里插入图片描述

5. 枚举的使用

(1)枚举的定义

enum 变量名{

​ 定义的属性值1 = 0,定义的属性值2,定义的属性值3,…定义定义的属性值n

}

定义在main方法内部

注意:属性值后面不跟值默认是0,也可以自定义值,例如定义的属性值1 = 100,则从100开始,后面依次加一。

例1:使用默认值

#include<stdio.h>
int main() {
	enum DAY{
		day0,day1,day2,day3
	};
	printf("%d %d %d %d",day0,day1,day2,day3);
}

在这里插入图片描述

例2:自定义值

#include<stdio.h>
int main() {
	enum DAY{
		day0 = 10,day1,day2,day3
	};
	printf("%d %d %d %d",day0,day1,day2,day3);
}

在这里插入图片描述

例3:前面使用默认值后面自定义值

#include<stdio.h>
int main() {
	enum DAY{
		day0,day1,day2=12,day3
	};
	printf("%d %d %d %d",day0,day1,day2,day3);
}

在这里插入图片描述

6. 字符串和转义字符

(1)字符串如何定义

c语言字符串的定义和java中的字符串定义还是有区别的,在C语言的数据类型中,我们并没有看到有String类型的数据,而仅仅只有char类型数据,说明c语言的字符串不能直接定义,需要借助数组定义。通常有三种定义方法

第一种:char 字符串名字[长度] = {字符串所含元素};

这一种给出的字符串的元素可以不等于字符串的长度,可以小于,但是不能大于字符串的长度。给的元素小于数组的长度,打印出的是实际元素个数,但是长度还是定义的长度

#include<stdio.h>
int main() {
	char arr[3] = {'a','b'};
	printf("%s\n",arr);
}

在这里插入图片描述

第二种:char 字符串名字[] = {字符串所含元素};

一般这种需要在末尾加上’\0’,表示结束。

#include<stdio.h>
int main() {
	char arr[] = {'a','b','\0'};
	printf("%s\n",arr);
}

在这里插入图片描述

第三种:char 字符串名字[] = “字符串包含元素”;

#include<stdio.h>
int main() {
	char arr[] = "abc";
	printf("%s\n",arr);
}

在这里插入图片描述

注意:这三种乍得一看似乎没有区别,其实还是有区别的,主要区别在于’\0’结束符的使用

(2)转义字符

\'	单引号
\"	双引号
\\	反斜杠
\n	换行
\r	回车
\t	水平制表符

7. 判断和循环

(1)判断

语法:

if(判断条件){
	执行内容
}else if(判断条件1){
    执行内容2
}else{
    执行内容3
}

(2)选择

#include<stdio.h>
int main() {
	int n;
	scanf("%d",&n);
	switch(n){
		case 0:{
			printf("%d\n",n);
			break;
		}case 1:{
			printf("%d\n",n);
			break;
		}case 2:{
			printf("%d\n",n);
			break;
		}
	}
}

在这里插入图片描述

(3)循环

①for循环

#include<stdio.h>
int main() {
	for(int i =0;i < 10;i++){
		printf("%d\n",i);
	} 
}

②while循环

#include<stdio.h>
int main() {
	int n =0;
	while(n < 10){
		printf("%d\n",n);
		n++;
	}
}

③do … while循环

#include<stdio.h>
int main() {
	int n =0;
	do{
		printf("%d\n",n);
		n++;	
	}while(n < 10);
}

8. 函数

函数一般用于流程化的东西,也称为批量处理。例如计算a与b的和,这里的a和b是泛指,不是只具体的,这时候使用函数来计算很明显能提高效率。

#include<stdio.h>
int sum(int a,int b); //声明函数 
int main() {
	int a = 10;
	int b = 20;
	printf("%d\n",sum(a,b));
}
int sum(int a,int b){
	return a+b;
}

9. 数组的使用

(1)数组的定义

①int arr[5] = {数组的五个元素,或者小于5个元素,默认为0} ;

#include<stdio.h>
int sum(int a,int b); //声明函数 
int main() {
	int arr[5] = {1,2,4,5,6} ;
	for(int i =0;i < 5;i++){
		printf("%d",arr[i]);
	}
}

②int arr[] = {数组的元素} ;

#include<stdio.h>
int sum(int a,int b); //声明函数 
int main() {
	int arr[] = {1,2,4,5,6} ;
	for(int i =0;i < 5;i++){
		printf("%d",arr[i]);
	}
}

10. 操作符的使用

算术操作符

+ - * 、 %

移位操作符

>> <<

位操作符

& ^ |

赋值操作符

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

单目操作符

!	逻辑反操作
-
+
&	取地址
*	引用操作符
~	取反操作
--
++

关系操作符

>
>=
<
<=
!=
==

逻辑操作符

&&
||

三亩条件操作符

a > b? a : b

11. 结构体

结构题使用struct关键词修饰,结构体表示的是例如表示一个学生的信息,学生信息属性不止一个并且都是一个人的属性我们如何表示,使用结构体就能完美的表示,例如还有银行卡的信息,id号,拥有者姓名,卡的类型也需要表示

#include<stdio.h>
struct Student{
	int id;
	char name[20];
	int age;
	char sex[4];
}; 
int main() {
	struct Student stu = {1,"张三",10,"男"};
	printf("id=%d name=%s age=%d sex=%s",stu.id,stu.name,stu.age,stu.sex);
}

12. 指针的简单使用

指针也就是一个地址的映射。把一个变量的地址址赋值给一个指针。

#include<stdio.h>
int sum(int a,int b); //声明函数 
int main() {
	int m = 10;
	int* p = &m; //&取地址址的意思,把m的地址复制给指针p 
	*p = 20;	//引用p复制给20 
	printf("%d",*p);
}
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值