一、引言
本系列文章主要内容主要是我对C语言的初步认识以及知识小结。
二、GET到的知识
1、main()函数:
main()函数作为程序的入口在整个工程中有且只能存在一个。并且main()函数括号内部是允许有参数的。
2、数据类型:
数据类型 | 占用空间(byte) |
---|---|
char | 1 |
short | 2 |
int | 4 |
long | 4 |
long long | 8 |
florat | 4 |
double | 8 |
多种的数据类型是为了方便处理生活中不同种类的值。当我们在选择数据类型时如果知道目标值的大致范围,最好使用对应的数据类型,这样既可以节省内存也可以避免出错。
3、变量:
(1)定义变量的方法:
数据类型(空格)变量名称=值
(2)变量的作用域和生命周期:
变量类型 | 作用域 | 生命周期 |
---|---|---|
全局变量 | 整个工程 | 等于程序的生命周期 |
局部变量 | 定义该变量的函数或语句中 | 进作用域开始,出作用域结束 |
注意!
<1>全局变量可以和局部变量重名,但是程序运行时全局变量优先
<2>若要使用另一个源文件中的全局变量,应该使用extern进行声明
4、常量:
常量类型 | 形式和解释 |
---|---|
字面常量 | 如π、e、g等生活中的常数 |
const修饰的常变量 | 如const int a = 1,在这里a的值不可变,但是其本质是变量。例:int arr[a]={0}会报错,因为[ ]内应输入常量。 |
#define定义的标识常量 | 形如: #define M = 1,M之后不可变 |
枚举常量 | 通常用来列举一些数量较少的值,值不可变 |
枚举常量形式如下
#include<stdio.h>
enum shape
{
fat,
slim
};
这里要注意的是结尾处要有 ; 否则会报错。
5、字符及字符串:
首先由双引号引起的是字符串字面值,由单引号引起的是字符。字符串结束的标志\0(转义字符),注意:\0是一个字符但是不算在字符串的长度里。如果一个字符串直到结尾都没有\0那么打印该字符串时将会出现乱值。有趣的时当\0出现在字符串中间时,打印结果中字符串会从\0处截断。如下:
#include<stdio.h>
int main()
{
char ch[] = "abcdef";
char ch2[] = "abc\0def";
printf("%s\n%s\n", ch, ch2);
return 0;
}
结果
6、转义字符:
首先来张转义字符表
转义字符 | 解释 |
---|---|
\? | 在书写连续多个问号时使用,防止他们被解释成三字母词 |
\‘ | 用于表示字符常量’ |
\"" | 用于表示字符串内部的双引号 |
\\ | 用于表示一个反斜杠,防止它被转义 |
\a | 警告字符 |
\b | 退格符 |
\f | 进纸符 |
\t | 水平制表符 |
\n | 换行符 |
\r | 回车符 |
\v | 垂直制表符 |
\ddd | ddd表示1—3个八进制数字 |
\xdd | dd表示2个16进制数字 |
注意:<1>如果想不想让转义字符转义那么久在它前面加一个\,如\\n就表示字符’\\n’。
<2>当使用\ddd时请注意其中是否存在8或8以上的数字,如果有,那它和它后面的数字就不算在ddd之中。\xdd同理。
<3>\ddd表示的是八进制数“ddd”转化为十进制数之后以这个数字为ASCII码值所代表的字符。
示例
#include<stdio.h>
int main()
{
printf("%c\n", '\065');//八进制的065转化为十进制是53,在ASCII码表对应的是字符5
printf("%c\n", '5');
return 0;
}
ASCII码表
输出
7、选择语句:
形式举例
int main()
{
int x = 1;
int y = 2;
if (x > y)
{
return x;
}
else
{
return y;
}
}
8、循环语句:
形式举例
int main()
{
int a = 0;
while (a <= 10)
{
printf("%d", a);
a++;
}
return 0;
}
9、函数:
形式举例
int func1(x, y)//创建比大小函数
{
int z = 0;
if(x>y)
{
z = x;
}
else
{
z = y;
}
return z;
}
函数的作用是为了重复实现某一功能从而简化代码。
10、数组:
形式举例
int arr[10] = {1,2,3,4,5,6,7,8,9}
注意:<1>创建数组时[ ]应该输入常数。数组的下标是从零开始的。
<2>{}内元素个数不能超过数组大小
三、尾声
这两天的学习生活非常充实,学到了很多干货,当然本篇文章只是我对自身目前学到的知识的简单总结,很多地方都是简单一提,或多或少地可能有些错误,如果发现毛病的话欢迎评论区留言。如果你是和我一样的萌新,希望这篇文章对你有用,如果你、您是大佬,还请多多指教。