C语言的常见概念(基础知识大扫盲)

前言

既然大家毅然决然的选择了C这门语言,那么就让我来带领大家进入程序猿的奇妙世界吧

1.C语言是什么,有什么辉煌的历史?

人与人之间交流,通过共同的语言实现,如:中文、英文......两个2人只有当能够理解投一种语言的时候,才能交流,否则只会是“盲人摸象”

而计算机仅能识别二进制数字,无法与人类直接交流,因此计算机语言应运而生,人们通过计算机语言写程序,给计算机下达指令,使计算机工作。

C语言、C++、Java、Go、Python等都是计算机语言的。

 虽然计算机语言的种类如此的纷繁复杂,但C语言自从其诞生之初就一直被历届大佬们所垂青。

 C语言作为一门至今仍然十分盛行的底层语言 ,其重要性是无可比拟的。

2.编译和链接

C语言的源代码只是文本文件,计算机所能识别的仅为二进制指令,必须经过编译器的翻译与链接器的链接,生成二进制的可执行文件。

 3.创建第一个C语言程序

#include<stdio.h>//打开工具箱
int main()//打开与计算机说话的嘴
{
//吩咐计算机做事情
printf(“Helllow,Wolrd");
getchar();
return 0;
}

4.main函数

①main是程序的入口,总是从main的第一行开始执行,当整个项目完成以后也时从main中退出

②main函数有且仅有一个(在同一个.c文件中或是在一个工程的多个.c文件中)

5.库函数

在进行编程的过程中有许多基本的功能C语言是不具备的,库函数由此应运而生。

C语言虽然吧不提供这些函数,但提供标准(eg:需要什么函数,函数的功能有什么.....)→再由C语言编译器厂商根据标准实现这些功能→这些函数集成后便成为了标准库,而标准库中的函数即为库函数。

注:虽然某些库函数是为了实现相同的基本需求,但在不同的集成开发环境中其的实现细节可能所不同!

当然在一些比较老的代码书里,可能会有以下一些。

例如:

void main
{
}
//void即没有返回值,所以此时就不用写return 0;
int main(int argc,char*argv[],dev*envp)//参数个数,参数,环境变量
{
return 0;
}

此外,return 0;是一种习惯性的用法(相当于是约定俗成的一种公理),当返回的为其他数的时,为异常情况

6.关键字

关键字(又名保留字)指的是C语言中有一批保留名字的符号

注:①关键字都有特殊含义,是由C用语言提供的

②程序员在创建标识符时是不能和关键字重复的,且关键字也不能有自己创建。

③这里关于②要补充一下,如果在给变量命名的时候,只是包含了关键字,那么编译器也不会报错,只是一般不这么做。

如:

int go_int=0;

C语言的32个关键字如下:

auto break case char(字符) const continue default do double(双精度浮点型)  else enum extern
float(单精度浮点型)   for   goto   if   int(整型)    long(长整型)   register   return   short (短整型)  signed(有符号)       sizeof(长度)
struct  switch    typedef    union    unsigned(无符号)    void(无返回值)     volatile             while(当)
在C99标准中又加入了:inline、retrict、_bool、_Complex、_Imaginary
更多详情请看: https://zh.cppreference.com/w/c/keyword (C语⾔关键字的全部介绍)

7.字符和ASCII编码

字符包括数字,字母,以及一些特殊的字符,要用(' ')括起来

计算机中所有的数据都是由二进制形式储存的,每个字符对应的二进制序列即为编码,但为了方便交流ANSI出台了一个标准ASCII编码

字符A~Z的ASCII码值从65-90,字符a~z的ASCII码值从97-122(顺序递增,a=A+32),数字0~9的ASCII码值为从48-57,其中0-31为不可打印码值(如:回车,空格......)
如果你尝试去打印的话会得到一串乱码。

另外:在打印字符时,可以用相应的ASCII码值来代替,例如:

printf("%c",'A');
printf("%C",65);

这样你得到的输出结果就都是‘A’ 

8.字符串与/0

被(“”)括住的一段字符即为字符串。而单个字符在输入的时候,则要用('')来括住。

注:①字符串的打印格式用%s来指定,字符在打印的时候,格式则由%c来指定。②”“为空字符串,但其中其实隐藏了/0.③我们在输出一个字符时其上方我们时看不见('')的。

更多有关占位符的内容我们在下一篇文章会见到,尽请期待哦~~

/0实际上是一个转义字符,为字符串结束的标志,命令输出到/0就停止了。(其实这里描述的不是非常准确,实际上只有当字符串或者是字符数组在输出的时候,才会以“/0”为打印结束的标志。


#include<stdio.h>
int main()\
{
char arr1[]={'a','b','c'};
char arr2[]="abc";
printf("%s\n",arr1);//输出的结果为:abc烫烫糖?你?
printf("%\n",arr2);//输出的结果为:abc
return 0';
}

arr1,arr2两个数组于内存中,但不知其左右为什么(随机数,即乱码),arr1由于只包含‘a','b','c'三个字符,没有\0,在格式化输出(printf)的时候,一直向后输出直至出现\0才停止,abc后面的乱码即为随机数翻译后的结果,而arr2则在输出完abc就结束了。

注:printf的输出机制,从变量或数组的开头开始一直向后打印直至“、0”处停止,不再打印

9.转义字符

转义字符 顾名思义即为转变原来意思的字符

如:’n‘(字母)≠’/n‘(换行)

常见的转义字符有如下几个方面:

\? :在书写连续多个问号时使⽤,防⽌他们被解析成三字⺟词,在新的编译器上没法验证了。
\' :⽤于表⽰字符常量'
\" :⽤于表⽰⼀个字符串内部的双引号
\\ :⽤于表⽰⼀个反斜杠,防⽌它被解释为⼀个转义序列符。
\a :警报,这会使得终端发出警报声或出现闪烁,或者两者同时发⽣。
\b :退格键,光标回退⼀个字符,但不删除字符。
\f :换⻚符,光标移到下⼀⻚。在现代系统上,这已经反映不出来了,⾏为改成类似于 \v
\n :换⾏符,在打印完(\n)前面的以后,光标直接跳到下一行再打印其后方的内容。
\r :回⻋符,光标移到同⼀⾏的开头。
\t :制表符,光标移到下⼀
个⽔平制表位,通常是下⼀个8的倍数。
\v :垂直分隔符,光标移到下⼀个垂直制表位,通常是下⼀⾏的同⼀列。
下⾯2种转义字符可以理解为:字符的8进制或者16进制表⽰形式
\ddd :d d d表⽰1~3个⼋进制的数字。 如: \130 表⽰字符X
\xdd :d d表⽰2个⼗六进制数字。 如: \x30 表⽰字符0
\0 :null 字符,代表没有内容, \0 就是 \ddd 这类转义字符的⼀种,⽤于字符串的结束标志,其
ASCII码值是0.
注:①看似转义字符有多个字符构成的,但在计算器所占用内存空间的时候,只算的1个字节(即为1个字符的大小)②而更有趣的是,它本身并非一个字符,影刺当你在用strlen函数去计算一个字符串长度的时候,转义字符是不会计入的。
当然至于strlen函数是什么,怎么用那么就留作一个悬念,让我们在下一篇文章中再见吧~~
今天的内容就到这里了,求点赞,关注❤
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小比特newer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值