学习C语言基础的第二天

128 阅读2分钟

常量

字面常量

用""包裹的内容

const修饰的常变量


#include <stdio.h>

int main() {
	const int a = 0;
	a = 10;
	return 0;
}

image.png

define定义的标识符常量


#include <stdio.h>

#define MAX 100

int main() {

	printf("%d", MAX);

	return 0;
}

枚举常量


#include <stdio.h>

// 枚举常量

enum Color {
	RED,
	GREEN,
	BLUE
};

int main() {

	enum Color color = RED;

	return 0;
}

字符串

用""双引号引起来的一串字符称为字符串字面值,或者简称字符串

字符串的结束标志是一个\0的转义字符,在计算字符串长度的时候,\0是结束标志,不作为长度被记录

下述代码阐释了"\0"的重要性


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

int main() {
	char arr1[] = "bit";

	char arr2[] = {'b','i','t'};

	char arr3[] = {'b','i','t','\0'};

	printf("%s\n",arr1);

	printf("%s\n", arr2);

	printf("%s\n", arr3);


	// strlen获取字符串的长度,会去内存中去找到"\0"的标识符,查找arr2的长度会一直去读取内存,
	// 一直找到"\0"为止,就是字符串的长度

	printf("%d\n", strlen(arr1));

	printf("%d\n", strlen(arr2));

	printf("%d\n", strlen(arr3));

	return 0;
}

image.png

转义字符

可以转换字符原本的含义,叫做转义字符。C语言支持的转义字符如下

转义字符释义
?在书写连续多个问号时使用,防止他们被解析成三字母词
'用于表示字符常量'
"用于表示一个字符串内部的双引号
\用于表示一个反斜杠,防止它被解释为一个转义序列符
\a警告字符,蜂鸣
\b退格符
\f进纸符
\n换行
\r回车
\t水平制表符
\v垂直制表符
\dddddd表示1~3个八进制数字,读取ASCII编码表,如\130
\xdddd表示2个十六进制数字,如 \x30

image.png


#include <stdio.h>

int main() {
	printf("C:\\Users\\G\\Desktop\\新建文本文档.txt");
	printf("\n");
	printf("\130");
	return 0;
}

image.png

注释

在C语言中有两种注释方式:(vs编译器可以用//个人感觉更方便)

  • 一种是以/*开始、以*/结束的块注释(block comment)(不能嵌套) c语言风格的注释
  • 另一种是以//开始、以换行符结束的单行注释(line comment)c++风格的注释

#include <stdio.h>

int main() {
	// 行注释

	/*
		块注释
	*/
	return 0;
}

分支语句

人生处处存在选择,选择不同,走的路也不同,在C中,也同理。


#include <stdio.h>

int main() {

	int num;

	// scanf("%d", &num); 新版vs系列认为scanf不安全,使用存在安全隐患,推荐使用vs2020标准的scanf_s

	scanf_s("%d", &num);

	if (num > 10) {
		printf("你输入的数字大于10");
	}
	else {
		printf("你输入的数字小于10");
	}

	return 0;
}

image.png

循环语句

循环语句:将一段代码循环重复去执行n次数叫做循环语句,例如显示生活中,老师罚抄xxx100遍,在C语言中也就是循环“抄写xxx”这个行为100次

while循环语句


#include <stdio.h>

int main() {

	int num = 0;
	while (num < 10) {
		printf("num的值为%d\n",num);
		num = num + 1;
	}
}

image.png