一. 什么是C语言
C语言是一种计算机编程语言(人和计算机交流的语言)。
国家标准:ANSIC-C89/C90。
二. 第一个C语言程序
使用V2013软件操作
1.新建空项目
2.在源文件下新建.c文件,并输入以下程序:
#include
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
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
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
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
#include //包含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