一. 什么是C语言

C语言是一种计算机编程语言(人和计算机交流的语言)。
国家标准:ANSIC-C89/C90。

二. 第一个C语言程序

使用V2013软件操作

1.新建空项目

2.在源文件下新建.c文件,并输入以下程序:

#include <stdio.h>
int main()
{
	printf("hello world\n");
	return 0;
}

3.右击工程名进入属性,修改子系统为控制台模式

4.运行

按ctrl+F5运行,结果输出hello world。

5.调试

点击鼠标,使光标位于main程序第一行,按ctrl+F10从此处开始运行调试程序,每按F10运行一句代码,再次按ctrl+F10退出调试模式。

三.数据类型

	char      字符数据类型
	short     短整型
	int        整型
	long      长整型
	long long 更长的整型
	float      单精度浮点数
	double    双精度浮点数
计算数据类型长度,使用库函数sizeof()
#include <stdio.h>
int main()
{
	printf("%d\n", sizeof(char));
	printf("%d\n", sizeof(short));
	printf("%d\n", sizeof(int));
	printf("%d\n", sizeof(long));
	printf("%d\n", sizeof(long long));
	printf("%d\n", sizeof(float));
	printf("%d\n", sizeof(double));
	return 0;
}
结果为:1 2 4 4 8 4 8   单位为字节Byte
int main()
{
	short age = 20;	    	//向内存申请2个字节存放20
	float f = 95.6f;	      //向内存申请4个字节存放小数
	return 0;
}
	注意:95.6f中的f将double类型数据截断为float类型数据,不写时会警告

四.变量、常量

1.变量的分类

局部变量&全局变量
#include <stdio.h>
int num1 = 20;	//	定义在代码块({})外的变量
int main()
{
	int num1 = 10;	//	定义在代码块({})内的变量
	//局部变量和全局变量的名字不建议相同
	//当局部变量和全局变量名字相同时,局部变量优先
	printf("%d\n", num1);
}

变量的作用域和生命周期

局部变量
* 作用域:代码块内,变量所在的局部范围
* 生命周期:进入作用域生命周期开始,出作用域生命周期结束

全局变量
* 作用域:全局
* 生命周期:程序运行始终
* 在text1.c文件下定义全局变量:
int g_val=2021;
* 在text2.c文件下使用text1.c定义的全局变量需要声明:
int main()
{
	extern int g_val;	//extern int 声明外部变量
	printf("%d\n",g_val);
}
* 结果输出:2021

变量的使用:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int num1 = 0;
	int num2 = 0;
	int sum = 0;

	scanf("%d%d",&num1,&num2);	//取地址符号&	
	sum = num1 + num2;
	printf("%d + %d = %d\n", num1, num2, sum);

	return 0;
}
注:使用scanf函数需要添加 #define _CRT_SECURE_NO_WARNINGS 1 语句。
为方便新建的源文件自带此语句,方法为:找到V13安装路径

在newc++file.cpp文件中输入 #define _CRT_SECURE_NO_WARNINGS 1 保存即可。

2.常量的分类

* 字面常量
* const修饰的常变量
* #define定义的标识符常量
* 枚举常量
#define MAX 10                                //3.define 定义的标识符常量

enum Sex                                //4.枚举常量
{
	MALE,
	FEMALE,
	SECRET
};
int main()
{
	enum Sex s = FEMALE;                        //通过枚举类型创造变量
	s = MALE;                                    //s为变量,可以修改
	printf("%d",MALE);                             //0
	printf("%d", FEMALE);                          //1
	printf("%d", SECRET);                          //2
	const int n = 10;                                //n是变量,但具有常属性,所以n为常变量
	int arr[10] = {0};                              //n报错,数组大小应为常量
	int arr1[MAX] = {0};                            //MAX为常量
	520;                                           //1.字面常量
	//2.const -- 常数性
	const int num = 10;                             //const修饰的常变量
	return 0;
}

五.字符串+转义字符+注释

1.字符串

“c:\text\32\text.c”
这种由双引号引起来的一串字符称为字符串字面值,或简称字符字串。
注:字符串的结束标志是一个 \0 的转义字符,含义为0,在计算字符串长度是不算 \0 。
//字符串类型 ""
#include <stdio.h>
#include <string.h>                    //包含strlen( )函数
int main()
{
	char arr1[] = "abc";                  //数组 "abc" -- 'a' 'b' 'c' '\0'--'\0'字符串的结束标志
	char arr2[] = { 'a', 'b','c'};             //输出随机值
	char arr3[] = { 'a', 'b', 'c','\0'};        //'\0'其实就是0
	printf("%d\n", strlen(arr1));           //3 strlen - string length - 计算字符串长度
	printf("%d\n", strlen(arr2));          //15,应该是随机值
	printf("%d\n", strlen(arr3));          //3
	printf("%s\n", arr1);                //输出abc
	printf("%s\n", arr2)                 //输出乱码
	printf("%s\n", arr3);                //输出abc
	return 0;
}

输出结果:

2.转义字符

转义字符 释义
? 在书写连续多个问号时使用,防止他们被解析成三字母词(不常用)
\’ 用于表示字符常量'
\’" 用于表示一个字符串内部的双引号
\ 用于表示一个反斜杠,防止他被解释为一个转义字符序列符
\a 警告字符,蜂鸣
\b 退格符
\f 进纸符
\n 换行
\t 水平制表符
\v 垂直制表符
\ddd ddd表示一个1-3个八进制的数字,如:\130
\xdd dd表示一个2个十六进制的数字,如:\x13

一些例子:

// /ddd -- 八进制数  /xdd -- 16进制
//'\0'转义字符  \t水平制表符
int main()
{
	printf("c:\text\32\text.c\n");
	printf("c:\\text\\32\\text.c\n");		          // \\ -- 反斜杠
	printf("%c\n", '\'');			                 //字符  \' -- 反 ’
	printf("%s\n","\"");			              // 字符串  \” -- 反 ”
	printf("%d\n", strlen("c:\text\32\text.c"));	  //13 \32 -- 10进制 26 -- 作为ascii码值对应的字符
	return 0;
}

3.注释

*C语言的注释风格: /*xxxxxxx*/ 
注:不能嵌套使用
*C++的注释风格: //xxxxxx