变量

格式

数据类型 变量名 = 赋值 int age = 150; float weight = 45.5f; char ch = 'w';

分类

#include <stdio.h>
int num2 = 20;//全局变量 - 定义在{}(代码块)之外的变量
int main()
{
	int num1 = 10;//局部变量 - 定义在{}(代码块)内部的变量
	return 0;
}

注意:

  1. 局部变量和全局变量的名字建议不要相同
  2. 产生BUG当局部变量和全局变量的名字相同的时候,局部变量优先
  3. 局部变量的作用域是变量所在的局部范围
  4. 全局变量的作用域是整个工程
#include <stdio.h>
int main()
{
	//计算2个数的和
	int num1 = 0;
	int num2 = 0;
	int sum = 0;
	//输入数据-使用输入函数scanf
	scanf("%d%d",&num1,&num2);//取地址符号&
	//C语言语法规定,变量要定义在当前代码块的最前面
	sum = num1 + num2;
	printf("sum = %d\n", sum);
	return 0;
}

常量

(1) 字面常量

#define _CRT_SECURE_NO_WARNINGS 1	
#include <stdio.h>
int main()
{
	int num = 4;
	printf("%d\n",num);
	num = 8;
	printf("%d\n",num);
}

代码中,4和8便是字面常量

(2) const修饰的常变量

格式:const 数据类型 变量名 = 赋值

#include <stdio.h>
int main()
{
	const int num = 4;
	printf("%d\n",num);
	num = 8;
	printf("%d\n",num);
}

注意:

  1. const修饰的常变量无法再次赋值
  2. const修饰的常变量是变量,但是拥有常属性
  3. 数组[ x ]中的 x 不可以用const修饰的常变量定义大小

(3) #define定义的标识符常量

格式:#define 变量名 赋值

#define MAX 10// MAX 定义为 10
int main()
{
	int arr[MAX] = { 0 };
	printf("%d\n",MAX);
	printf("%d\n", arr[0]);
	return 0;
}

(4) 枚举常量

格式:enum 变量名 { 赋值 };//这个分号一定不能少,他代表着enum的结束!

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
enum Colour {R,G,B}; 
int main()
{
	enum Colour c = B;
	printf("%d\n",c);
	return 0;
}

转义字符

定义:转变字符原有的含义 定义:转变原来的意思 eg1: 输出abcn n前面添加\,输出abc和一个回车 eg2: \t:水平制表符tab 如果想要输出"c:\test\32\test.c" 则需要输入"c:\\test\\32\\test.c"

**注意:转义字符组合起来是 一个字符 ** strlen:查字符串长度

#include <stdio.h>
#include <string.h>
int main()
{
		printf("%d\n", strlen("c:\test\32\test.c"));//字符串长度为13
//\32代表32是2个八进制数字
// 32的十进制为26,作为ASCII码值代表的字符,查表可得是一个右指向箭头
		return 0;
}

\ddd代表ddd是2个八进制数字 ddd换算为十进制 ( ),作为ASCII码值代表的字符,查表可得对应符号


字符串

“hello” 这种由双引号引起来的一串字符称为字符串字面值,简称字符串 “” 也是字符串,是空字符串 注意:字符串的结束标志是一个\0的转义字符。在计算字符串长度的时候\0是结束标志,不算做字符串内容

#include <stdio.h>
int main()
{
	//数据在计算机上存储的时候是2进制
	//a - 97 - ASCII 码值
	//A - 65
	//这种编码方式叫 ASCII 编码
	char arr[] = "abc";//数组
	//"abc"包含'a','b','c','\0'
	//'\0':字符串的结束标志
	char arr1[] = { 'a', 'b', 'c' , '0' };
	printf("%s\n",arr);//输出abc
	printf("%s\n", arr1);//输出abc
	return 0;
}

字符串的长度

#include <stdio.h>
#include <string.h>
int main()
{
	char arr1[] = "abc";
	char arr2[] = {'a','b','c'};
	printf("%d\n", strlen(arr1));//输出:3
	//strlen - string lenght - 计算字符串长度
	printf("%d\n", strlen(arr2));//输出:任意值
	return 0;
}

arr1里面的字符有 a b 和 c 到 \0 停止计数,所以 arr1 的字符长度是 3 arr2中有a b c等等,一直等到遇见 \0 才停止计数,所以 arr2 的字符长度是 任意值

ASCII码表

要记住的ASCII码值

| 字符 | 1 | ...... | 9 | A | ...... | Z | a | ...... | z | | -------- | -------- | -------- | | 十进制 | 48 | ...... | 57 | 65 | ...... | 90 | 97 | ...... | 122 |