本科毕业后自学了一段时间c语言和数据结构,研究生要用到,但已生疏了不少,故重新跟着b站鹏哥学习和敲代码,特此记录。
第一个c语言程序
主函数main()
c语言的具体结构:
一个c语言程序由若干个头文件和函数组成
# include <stdio.h>
// std -标准
// i -input
// o -output
//标准的主函数写法
int main()
{
printf("hello world\n");
return 0;
}
int 与 0 呼应,整形。
且在最新的C标准中,main函数前的类型为int
而不是void。
main函数是程序的入口,有且只有一个。
良好习惯:
- 一个说明或一个语句占一行,例如:包含头文件、一个可执行语句结束都需要换行。
- 函数体内的语句要有明显缩进,通常以按一下Tab键为一个缩进。
- 括号要成对写,如果需要删除的话也要成对删除。
- 当一句可执行语句结束的时候末尾需要有分号。
- 代码中所有符号均为英文符号。
- 注释:多行注释和单行注释。
数据类型
基本数据类型
整型:int
字符串:char
浮点数型:float double
# include <stdio.h>
// std -标准
// i -input
// o -output
//标准的主函数写法
int main()
{
printf("%d\n", sizeof(char)); //1
printf("%d\n", sizeof(int)); //4
printf("%d\n", sizeof(short)); //2
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;
}
bit - 比特
byte - 字节
kb mb gb tb pb
变量和常量
C语言中,不变的值:常量
变动的值:变量
在C语言中,可以用一个标识符来表示一个常量,称之为符号常量。符号常量在使用之前必须先定义,其一般形式为:
# define 标识符 常量值
# include <stdio.h>
# define POCKETMONEY 10 //定义常量及常量值
int main()
{
// POCKETMONEY = 12; //小明私自增加零花钱对吗?
printf("小明今天又得到%d元零花钱\n", POCKETMONEY);
return 0;
}
常量分类:
- 字面常量
- const 修饰的常变量
- #define 定义的标识符常量
- 枚举常量
#include <stdio.h>
//举例
enum Sex
{
MALE,
FEMALE,
SECRET
};
//括号中的MALE,FEMALE,SECRET是枚举常量
int main()
{
//字面常量演示
3.14;//字面常量
1000;//字面常量
//const 修饰的常变量
const float pai = 3.14f; //这里的pai是const修饰的常变量,本质是变量
pai = 5.14;//是不能直接修改的!
//#define的标识符常量 演示
#define MAX 100
printf("max = %d\n", MAX);
//枚举常量演示
printf("%d\n", MALE);
printf("%d\n", FEMALE);
printf("%d\n", SECRET);
//注:枚举常量的默认是从0开始,依次向下递增1的
return 0;
}
变量设置
int main()
{
short age = 3;
int height = 176;
float weight = 82.5;
return 0;
}
变量的分类
局部变量和全局变量
int a = 100; //全局变量
int main()
{
short age = 3; //局部变量
int height = 176;
float weight = 82.5;
return 0;
}
同一类型的变量不能重复出现
全局变量和局部变量的名称可以相同,相同时,局部优先
//写一段代码,计算两个数的和
//scanf -input
//printf -output
# include <stdio.h>
int main()
{
int num1 = 0; //初始化
int num2 = 0;
scanf("%d %d", &num1, &num2);
int sum = num1 + num2;
printf("两个数的和为:%d\n", sum);
return 0;
}
作用域和生命周期
局部变量的作用域:变量所在的局部范围
全局变量的作用域是整个工程;
局部变量的作用域是变量所在的局部范围
生命周期:变量的生命周期指的是变量的创建到变量的销毁的一个时间段。
全局变量的生命周期:整个程序的生命周期;
局部变量的生命周期:进入作用域生命周期开始,出作用域生命周期结束;
字符串
"hello, boy\n"
这种由双引号(
Double Quote
)引起来的一串字符称为字符串字面值(
String Literal
),或者简称字符串。
注:字符串的结束标志是一个
\0
的转义字符。在计算字符串长度的时候
\0
是结束标志,不算作字符串内容。
# include <stdio.h>
//(突出'\0'的重要性)
# include <string.h>
int main()
{
int len = strlen("acv")
printf("%d\n", len) //3
char arr1[] = "bit";
char arr2[] = {'b', 'i', 't'};
char arr3[] = {'b', 'i', 't', '\0'};
printf("%s\n", arr1); //bit
printf("%s\n", arr2); //bitbit
printf("%s\n", arr3); //bit
return 0;
}
转义字符 释义
\?
在书写连续多个问号时使用,防止他们被解析成三字母词
\'
用于表示字符常量
'
\''
用于表示一个字符串内部的双引号
\\
用于表示一个反斜杠,防止它被解释为一个转义序列符。
\a
警告字符,蜂鸣
\b
退格符
\f
进纸符
\n
换行
\r
回车
\t
水平制表符 TAB
\v
垂直制表符
\ddd
d d d
表示
1~3
个八进制的数字。 如:
\130
表示八进制转为十进制后的ASCII字符
X
\xdd
d d
表示
2
个十六进制数字。 如:
\x30
表示字符
0