声明
本人基础知识薄弱,仅为总结所学知识
若有错误欢迎指正,请勿恶意攻击
一、C语言常见概念
1.C语言是一门计算机语言,而我们和机器交流可以通过C语言去交谈,我们通过编译+链接→可执行程序。
2.C语言最初是给Unix系统开发的,有了国际标准,才能长久发展。
3.常见的编译器有msvc,clang,gcc,而我们经常用的VS,VScode等都叫集成开发环境(IDE)
4.这是我的第一次迈步,Ctrl+F5就可以开始调试执行了
#include <stdio.h>
int main()
{
printf("hello world");
return 0;
}
5.对于main函数,程序入口仅有一个,即使有多个.c文件,当然,main函数放任何位置都可以。
6.""指的是一个字符串,''指的是字符,用printf打印的时候我们用%c,同时函数后面要写打印谁
printf("%c",'q');
若你想打印小数,用%f,但是要注意它默认打印小数点后六位,如果小数位不足用0补齐。
7.关键字,又称保留字,它有着特殊的意义,不能由自己创建,自己的标识符也不能与之重复。
8.对于0,单指一个数字0,值为0;但'0',指的是一个字符,它的值为48.
9.对于字符串,我们之前有提到过,但是其末尾会隐藏一个"\0",它是字符串结束的标志,若用printf打印,遇到这则会终止打印,同时'\0','\n'是转义字符;
arr2 [] = {'a','b','c'}//异常情况,打印不会终止
//若想停止,你可以主动放入\0,如下
arr2 [] = {'a','b','c','\0'}
arr2 [] = "abc"
printf("%s\n",arr2);
10.如何维护自己的Gitee代码↓
基本教程都有掌握,提交代码我们可以按照Add→Committe→Push,若不想全部提交,可以自己添加过滤规则,放在你提交的代码文件夹下,克隆化本地仓库用clone,这边我的个人仓库:本人水平较差,多多见谅 。
二、常见转义字符
1.如果你想在代码中打印'这个单引号,但是编译器会认为这是一个字符标志,那怎么办呢,我们可以在前面添加\,就比如这样:\',在打印的时候可以直接打印。
2.同理,对于双引号也是同理,\",但是你也可以这样在双引号里写入单引号,这样单引号不用\了,例如:“''”。
3.对于\\,这样做可以单纯表示个\,你可以灵活使用,例如\\n打印出\n,\\t打印出\t。
4.\t,是一个制表符,通常为4个或者8个字符宽,表示位置宽度,假若你打印一个字符,则剩下用空格补齐七个字符,二个则空六个字符以此类推,其整体要对齐到字符的倍数,也可以理解为对齐到下一个制表位。
5.\a,蜂鸣警告,对应英文alarm,就是会响一次。
6.\b,不删除回退个字符,若后面有字符会导致后面一个字符覆盖掉前面一个字符,例如:
printf("Hello\bWorld");//打印结果是HellWorld
7.\n,换行符。
8.\r,回车符,光标会移到这行开头,跟\b相似的,若后续有字符,会覆盖,例如:
printf("Hello\rWorld);//打印的结果是World
9. \v,垂直制表符。
10.\ddd,其中ddd指的是1~3个八进制数字,那顾名思义,这个转义字符是用来表示八进制数字的,例如\130对应ASCII码表是“X”。(\0就为这张形式)
11.\Xdd,其中dd表示1~2个十六进制数字,那顾名思义,这个转义字符是用来表示十六进制数字的,例如\x30对应ASCII码表表示“0”。
三、语句
1.空语句:一个分号;。
2.表达式:表达式后要加;,例如 int a = 20;
3.函数调用:printf(".......");。
4.复合语句:一个个代码块,用“{}”构成。
5.控制语句:目的是实现结构方式,为顺序、选择、循环。
四、注释
1.它对代码无影响,要写出必要的注释,不要让别人看你的代码抓狂,若果你不想要的代码而又不想删掉也可以注释
2.注释它有很多种形式,你注释时候按编译器的来就好。
3.快捷键:Ctrl+k+c注释,取消Ctrl+k+v。
五、数据类型
#整数类型→整型,小数→浮点型,字符→字符型,还有布尔类型。
1.整型(int):短整型(Short)、长整型(long)、更长整型(long long)。
2.浮点型:float(单精度)、double(双精度)、long double(更高的精度)。
3.布尔类型(Bool):其0为假,非0为真,后来又用#define bool,其头文件是<stdbool.h>。
4.如果你想计算操作符类型长度,它的单位是字节,用%zd打印,你可以不写括号,但是值会改变,每个类型大小这里写不下,可以去搜索看看哦,但是注意,在C语言中,sizeof(long)>=sizeof(int),例如:
(sizeof 3+5)//结果是9,为什么
//嗯。因为sizeof它不会真正去计算
//它首先算出3的长度为四个字节,再加上五,等于9
//再比如这个例子
sizeof(3+3.5)//一个是整型,int,对于四个字节
//后面的是double类型,在C语言中默认会转化为double类型,所以结果是8
//但是你有没有想过,去掉括号会怎么样?没错,聪明的你一定想到了,会计算3的长度
//为四个字节,再加上3.5,结果就是7.5,跟最开始是类似的
同时,这里还有一个补充例子:
sizeof(s = b + 1)//在这里,结果是2,为什么
//因为s是我们自己划定了短整型,结果由它说了算
5.signed和unsigned:在signed中,表示一个有符号的类型,存在正负,如果你用char,对于是否有符号,取决于编译器,在VS中认为是signed;unsigned是无符号的,只有0和正数。
#补充:但是呢,在C语言中并无规定具体的类型,sizeof可以为char,long等等,那么C语言中提供了一个解决的办法,大不了统一返回类型吧,无论是unsigned int,unsigned long long等等,返回size_t.