1.C语言基础概念

准备环境

本人使用的继承开发环境为Visual Studio 2022(简称VS 2022)
下载链接

1.源文件和头文件

C语言
源文件后缀为 .c (注:c++源文件后缀为 .cpp)
头文件后缀为 .h

2.编译和链接

C语言源代码本身只是单纯的文本文件,C语⾔代码是放在.c 为后缀的⽂件中的。

必须经过编译链接之后变成可执行文件才可运行。

文本文件本⾝⽆法执⾏,必须通过编译器翻译链接器的链接,⽣成⼆进制的可执⾏⽂件,可执行文件才可以执行。

在这里插入图片描述

3.第一个C语言程序

//头文件 没有头文件无法解析对应的库函数(例:printf()函数)
//std-标准	i-input输入	 o-output输出
#include <stdio.h>

//c语言代码中一定要有main函数,main函数也叫主函数
//main函数是程序的入口,都从main函数的第一行代码开始
int main() {
    
    
	//main函数里面写代码
	//每段代码后面都要加上 ; 
	printf("hello c语言!");
	
    //return 0结尾
	return 0;
}

//运行快捷键 ctrl + f5 或者 fn + ctrl + f5

4.关于main()函数

1.C语言代码从main函数开始执⾏
2.main函数也叫主函数,main函数是程序的入口
3.⼀个项⽬中可以有多个.c⽂件,但是只能有⼀个main函数(因为程序的⼊⼝只能有⼀个)

5.关于printf()库函数

作用:输出打印字符串,也可以输出打印其他类型的数据(用格式化输出)
前提:必须引入stdio.h这个头文件

#include <stdio.h>
int main() {
    
    

	//printf是一个库函数,专门用来打印数据
	printf("hello c!");//打印字符串
	
	//利用格式字符串输出(根据占位符决定数据类型)
    printf("%d\n",100);//打印整型
	printf("%f\n",100.01);//打印浮点型(默认保留至小数点后6位)
	printf("%s\n","你好!");//打印字符串
	printf("%c\n",'c');// 打印字符
	return 0;
}

输出结果:
在这里插入图片描述

字符和字符串的区别以及注意事项
1.字符使用单引号’ ’
2.字符串使用双引号" "
3.汉字占两个字符,所以以字符的形式输出单个中文汉字时会乱码。

6.关键字介绍

关键字,顾名思义,就是很关键的字词,在C语言中大都为构成语法的一部分,比如各种数据类型的定义词(int、long、float、char等)以及一些有重要特殊意义的关键词(if、while、do、for等)。

注:创建标识时不能和关键字重名

C语⾔的32个关键字如下:
在这里插入图片描述

7.字符和ASCII编码

C语言中字符用单引号括起来

ASCII编码的意义:
计算机中所有的数据都是以⼆进制的形式存储的,如果我们每个⼈⾃⼰给这些字符中的每个字符编⼀个⼆进制序列,这个叫做编码,为了⽅便⼤家相互通信,不造成混乱,后来美国国家标准学会(ANSI)出台了⼀个标准ASCII编码,C语⾔中的字符就遵循了ASCII编码的⽅式。

常见的一些ASCII编码
字符A-Z的ASCII码值从65~90
字符a-z的ASCII码值从97~122
对应的⼤⼩写字符(a和A)的ASCII码值的差值是32(字符小写字母+32=字符大写字母)
数字字符0-9的ASCII码值从48~57
在这些字符中ASCII码值从0~31这32个字符是不可打印字符
0-31这32个字符对应的都是一些操作功能,无法显示。

具体ASCII表可以参考https://www.runoob.com/w3cnote/ascii.html

8.字符串和/0

字符串
定义:使⽤双引号括起来的⼀串字符就被称为字符串。
格式化占位符:%s

以下打印字符串,表面上看上去只有6个字符,但是我们开始对其进行监视

int main() {
    
    
	printf("abcdef");
	return 0;
}

结果从监视的角度看,实际上这段字符串一共有7个字符,最后结尾多了一个 \0 转义字符
C语言中,字符串末尾会隐藏一个转义字符 \0,\0是字符串结束的标记。
在这里插入图片描述

字符串与\0的关系

int main() {
    
    
	//arr1 可以将字符串放到字符的数组中
	char arr1[] = "abc";//abc

	//arr2 将3个字符放入字符数组中
	char arr2[] = {
    
    'a','b','c'};

	//arr3 用转义 \0 将字符串隔开
	char arr3[] = "abc\0ddd";
	
	printf("%s\n", arr1);
	printf("%s\n", arr2);
	printf("%s\n", arr3);
	return 0;
}

输出结果:
在这里插入图片描述

解析:
arr1输出abc,正常

arr2输出abc后面还有一堆内容,因为数组arr2在打印完abc后,因为不是字符串,结尾没有 \0 字符标
识使其停止打印,于是一直打印下去,内存里面有一些所谓的"垃圾脏内容"全部都被打印出来了。

arr3输出至abc时,接触\0标识,所以会停止打印。

将arr2数组修改一下,再数组最后一个元素后面再加一个字符 \0

int main() {
    
    
	//如果在arr2数组在结尾添加一个 \0 转义字符
	char arr2[] = {
    
    'a','b','c','\0'};//此时输出完abc即刻停止
	printf("%s\n", arr2);
	return 0;
}

9.转义字符

转义顾名思义就是转变意思,转义字符明显的特征就是前面会加上一个反斜杠(例如 \n 换行)

拿\n为例
没加上\前,n就是普普通通的一个字符n
加上\后,\n就表示换行这一操作

int main()
{
    
    
	printf("a\nb");
	return 0;
}

在这里插入图片描述

以及上述字符串中提到的\0同样也是转义字符,字符0添加 \ 后就成了 \0 ,\0是另一种全新的意义,即字符串结尾标识符。

以下是一些常用的转义字符

转义字符 意义
\\ 表示符号反斜杠 \
\" 表示字符内部的双引号 ”
\‘ 表示字符内部的单引号 ’
\n 换行符
\t 制表符,光标移到下⼀个⽔平制表位,通常是下⼀个8的倍数
\b 退格键,光标回退⼀个字符,但不删除字符
\v 垂直分隔符,光标移到下⼀个垂直制表位,通常是下⼀⾏的同⼀列

10.关于strlen()函数

作用:计算字符串的长度

int main() {
    
    
	//计算字符串的长度,直到空结束字符,但不包括空结束字符。
	int len = strlen("c:\test\123.c");//这里调式执行后结果为9,但是监视结果为10(监视把\0转义字符算上了)
	printf("%d\n", len);
	return 0;
}

注意其中的转义字符,一个转义字符算一个字符,c:\test\123.c(标黄部分算一个字符,即\t算一个字符 \123算一个字符

\ddd :ddd表⽰⼋进制的数字

调试结果:
在这里插入图片描述

监视结果:
在这里插入图片描述监视结果发现有10个,因为算上了\0,strlen()不算入\0这个结束标识字符

猜你喜欢

转载自blog.csdn.net/qq_45657848/article/details/131823517