- C语言简介
- 简单的C语言程序
- 数据类型
- 变量和常量
- 字符串
- 转义字符
1、C语言简介
C语言是一门通用的计算机编程语言,广泛应用于底层开发;
国际标准化组织(ISO)和国际电工委员会(IEC)发布的CII标准是C语言的最新标准,更好的支持了汉字函数和汉字标识符,一定程度上实现了汉字编程;
C语言是一门面向过程的计算机编程语言,与C++、Java等面向对象的编程语言有所不同;
其主要的编译器有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
2、简单的C语言程序
#include<stdio.h> //头文件,stdio-标准输入输出,h-head头文件
int main() //主函数,一个工程中main函数有且只能有一个主函数
{
printf("hello,world.\n"); //打印输出语句,输出hello,world.
return 0; //人为定义正确时返回0,不正确时返回1
}
3、数据类型
char //字符数据类型
short //短整型
int //整形
long //长整型
long long //更长的整形
float //单精度浮点数
double //双精度浮点数
每个数据类型所占的内存空间大小不一样;
定义了某一个数据类型的变量,就给该变量申请了相应大小的内存空间。
int main()
{
printf("%d\n", sizeof(char)); //1字节
printf("%d\n", sizeof(short)); //2字节
printf("%d\n", sizeof(int)); //4字节
printf("%d\n", sizeof(long)); //4字节
printf("%d\n", sizeof(long long)); //8字节
printf("%d\n", sizeof(float)); //4字节
printf("%d\n", sizeof(double)); //8字节
return 0;
}
sizeof() //用来获取大小
bit位 byte字节 KB MB GB TB PB...
1byte=8bit
1KB=1024byte
1MB=1024KB
1GB=1024MB
1TB=1024GB
4、变量和常量
4.1 定义变量的方法
int main()
{
int age = 18; //初始化
float weight = 45.5f; //初始化
char ch = 'c'; //初始化
int b;
b = 1; //给变量b赋值
}
4.2 变量的分类
按照变量的作用域,变量可分为局部变量和全局变量;
局部变量的作用域是变量所在的局部范围,进入作用域生命周期开始,出作用域生命周期结束;
全局变量的作用域是整个工程,生命周期是整个程序的生命周期;
局部变量可以和全局变量同名,同名时局部变量优先使用。
#include<stdio.h> //头文件,stdio-标准输入输出,h-head头文件
int a = 10; //全局变量
int main()
{
{
int a = 100; //局部变量,作用域只是这个花括号内
printf("a = %d\n", a); //a = 100
}
printf("a = %d\n", a); //a =10
}
4.3 变量的使用
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
printf("请输入两个加数,用空格隔开:\n");
scanf_s("%d %d", &num1, &num2); //输入语句,双引号内是什么格式,输入时就是什么格式
//Microsoft Visual Studio-2019版认为scanf不安全
sum = num1 + num2;
printf("%d + %d = %d\n",num1, num2, sum);
return 0;
}
4.4 常量 字面常量、const修饰的常变量、#define定义的标识符常量、枚举常量
#include<stdio.h> //头文件,stdio-标准输入输出,h-head头文件
enum Sex { MALE, FEMALE,SECRET }; //枚举常量
int main()
{
3.14; //字面常量
const float pai = 3.14f; //const修饰的常量
#define MAX 100 //define的标识符常量
//pai = 10; 会报错,常量不能再赋值
printf("pai = %.2f\n", pai);
printf("MAX = %d\n", MAX);
return 0;
};
5、字符串
严格来说,C语言中没有字符串这种数据类型,其应该称之为字符数组;
字符串的结束标志是 \0 的转义字符;
计算字符串长度时 \0 不算做字符内容,而计算字符串大小时 \0 被计算。
#include <stdio.h> //头文件,stdio-标准输入输出,h-head头文件
#include <string.h>
int main()
{
//字符串的定义
char *str = "hello";
char str1[] = "abcd";
char str2[] = {'a', 'b', 'c', '\0'};
char str3[] = "ab\0cd";
char str4[] = { 'a', '\0', 'b', 'c', '\0'};
printf("str1为:%s ,str1的长度:%d,str1的大小:%d\n", str1, strlen(str1), sizeof(str1));
printf("str2为:%s ,str2的长度:%d,str2的大小:%d\n", str2, strlen(str2), sizeof(str2));
printf("str3为:%s ,str3的长度:%d,str3的大小:%d\n", str3, strlen(str3), sizeof(str3));
printf("str4为:%s ,str4的长度:%d,str4的大小:%d\n", str4, strlen(str4), sizeof(str4));
return 0;
/*
* 运行结果:
str1为:abcd ,str1的长度:4,str1的大小:5
str2为:abc ,str2的长度:3,str2的大小:4
str3为:ab ,str3的长度:2,str3的大小:6
str4为:a ,str4的长度:1,str4的大小:5
*/
}
6、转义字符
\? 在书写多个问号时使用,防止他们被解析成三个字母
\' 用于表示字符常量 '
\" 用于表示字符串内部的双引号
\\ 用于表示一个反斜杠,防止他被解释为一个转义序列符
\a 警告字符,蜂鸣
\b 退格符
\f 进纸符
\n 换行
\r 回车
\t 水平制表符
\v 垂直制表符
\ddd ddd表示1到3个八进制数字,如 \130
\xdd dd表示两个十六进制数字,如 \x30
#include <stdio.h> //头文件,stdio-标准输入输出,h-head头文件
#include <string.h>
int main()
{
printf("%d\n", strlen("abcdef")); //6
printf("%d\n", strlen("c:\test\328\test.c")); //14
return 0;
}