C语言基础——C语言常见概念

  前言:

        从现在开始我们要进行C语言的学习了,我将尽我所能写出优质博客来配合大家的学习。在学习C语言期间,我们使用的编译器为VS2022,大家有什么疑惑的地方可向我提问,我将知无不言。正所谓:言多必失。我们开始今天的学习吧。最后,还是想说:你们的支持是我的最大动力,还请一键三连。

1.C语言基本构成
        1.1第一个C语言程序
#include<stdio.h>
int main()
{
    printf("hello,wold");
    return 0;
}

这⾥演⽰VS2022中创建项⽬和编写C代码的过程,并运⾏出结果。 在VS2022上运⾏代码的快捷键: Ctrl+F5 

 1.2 main函数

        每个 C 语⾔程序不管有多少⾏代码,都是从 main 函数开始执⾏的, main 函数是程序的⼊⼝, main 函数也被叫做:主函数。 main 前⾯的 int 表⽰ main 函数执⾏结束的时候返回⼀个整型类 型的值。所以在 main 函数的最后写 return 0; 正好前后呼应。当程序结束运行时可以通过判断返回值是否为0来确认程序是否正常运行。

1.main函数是程序的⼊⼝

2. main函数有且仅有⼀个

3.即使⼀个项⽬中有多个.c⽂件,但是只能有⼀个main函数(因为程序的⼊⼝只能有⼀个)

第⼀次写代码,⼀些常⻅的错误总结:

1. main 被写成了mian

2. main后边的()漏掉了

3. 代码中不能使⽤中⽂符号,⽐如括号和分号 

4.⼀条语句结束后,有分号

1.3 printf函数

        这⾥简单的介绍⼀下 printf , printf 是⼀个库函数,它的功能是在标准输出设备(⼀般指屏 幕)上进⾏信息的打印。上⾯的代码是使⽤ printf 函数打印字符串。只要把想要打印的⼀串字符放 在双引号中并传递给printf函数就可以打印。        

        那么,什么是库函数呢?

        为了不再重复实现常⻅的代码,让程序员提升开发效率,C语⾔标准规定了⼀组函数,这些函数再由不 同的编译器⼚商根据标准进⾏实现,提供给程序员使⽤。这些函数组成了⼀个函数库,被称为标准 库,这些函数也被称为库函数。在这个基础上⼀些编译器⼚商可能会额外扩展提供部分函数(这些函 数其他编译器不⼀定⽀持)。 ⼀个系列的库函数⼀般会声明在同⼀个头⽂件中,所以库函数的使⽤,要包含对应的头⽂件。

   1.4 关键字

        C语⾔中有⼀批保留的名字的符号,⽐如: int 、 if 、 return ,这些符号被称为保留字或者关键 字。注意:

1.关键字都有特殊的意义,是保留给C语⾔使⽤的

2. 程序员⾃⼰在创建标识符的时候是不能和关键字重复的

3.关键字也是不能⾃⼰创建的。

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、static、struct、switch、typedef、union、unsigned、void、volatile、while

是不是现在看起来头都大了呢,别担心,这些关键字不用特别记忆,它们会随着我们的学习被大家记住的,它们就是纸老虎,仅此而已。

1.5字符和ASCII编码

        我们在键盘上敲的如:a,b,?,%这些称之为字符。

        我们都明白计算机的内容都是以二进制的形式储存的,那我们在键盘上敲的字符在内存里究竟以何种方式存在呢?当然不可能随意存储,就好比自家的东西不能乱放,不然极容易找不到。       为了解决这个问题,科学家们编排了ASCII编码表,来存放字符。

我们不需要记住所有的ASCII码表中的数字,使⽤时查看就可以,不过我们最好能掌握⼏组特殊的数 据: 

• 字符A~Z的ASCII码值从65~90

• 字符a~z的ASCII码值从97~122

• 对应的⼤⼩写字符(a和A)的ASCII码值的差值是32

• 数字字符0~9的ASCII码值从48~57

• 换⾏ \n 的ASCII值是:0

• 在这些字符中ASCII码值从0~31 这32个字符是不可打印字符,⽆法打印在屏幕上观察

单个字符的打印可以使⽤%c来指定格式:

#include <stdio.h>
int main()
{
 printf("%c\n", 'Q');
 printf("%c\n", 81);//这⾥的81是字符Q的ASCII码值,也是可以正常打印的
 return 0;
}

可打印字符展⽰:

#include <stdio.h>
int main()
{
 int i = 0;
 for (i = 32; i <= 127; i++)
 {
 printf("%c ", i);
 if (i % 16 == 15)
 printf("\n");
 }
 return 0;
}

 结果如下:

1.6转义字符

你看到前面的\n,你肯定会有疑惑,但是,当你看到这时,相信你应该明白了这个是转义字符。

其实在字符中有⼀组特殊的字符是转义字符,转义 字符顾名思义:转变原来的意思的字符。

比如,看看下面的代码:

#include <stdio.h>
int main()
{
 printf("abcndef");
 return 0;
}

和以下代码:

#include <stdio.h>
int main()
{
 printf("abc\ndef");
 return 0;
}

试着将它们运行一下:

你会发现两个结果完全不一样,这是为什么呢?

这就是转义字符的问题, \n 是⼀个转义字符表⽰换⾏的意思,我们可以简单的理解为 \ 让 n 的意思 发⽣了转变, n 本来是⼀个普通的字符,被 \ 转义为换⾏的意思。 C语⾔中像这样的转义字符还有⼀些,具体如下:

• \? :在书写连续多个问号时使⽤,防⽌他们被解析成三字⺟词,在新的编译器上没法验证了。

• \' :⽤于表⽰字符常量'

• \" :⽤于表⽰⼀个字符串内部的双引号

• \\ :⽤于表⽰⼀个反斜杠,防⽌它被解释为⼀个转义序列符。

• \a :警报,这会使得终端发出警报声或出现闪烁,或者两者同时发⽣。

• \b :退格键,光标回退⼀个字符,但不删除字符。

• \f :换⻚符,光标移到下⼀⻚。在现代系统上,这已经反映不出来了,⾏为改成类似于 \v 。

• \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.

2.语句和语句分类

C语⾔的代码是由⼀条⼀条的语句构成的,C语⾔中的语句可为以下五类:

1空语句

2 表达式语句

3函数调⽤语句

4复合语句

5 控制语句

2.1 空语句

空语句是最简单的,⼀个分号就是⼀条语句,是空语句。

空语句,⼀般出现的地⽅是:这⾥需要⼀条语句,但是这个语句不需要做任何事,就可以写⼀个空语 句。

#include <stdio.h>
int main()
{
 ;//空语句
 return 0;
}
2.2表达式语句

表达式语句就是在表达式的后边加上分号。

#include <stdio.h>
int main()
{
 int a = 20;
 int b = 0;
 b = a + 5; //表达式语句
 return 0;
}
2.3函数调用语句

函数调⽤的时候,也会加上分号,就是函数调⽤语句。

#include <stdio.h>
int Add(int x, int y)
{
 return x+y;
}
int main()
{
 printf("hehe\n");//函数调⽤语句
 int ret = Add(2, 3);//函数调⽤语句 
 return 0;
}
2.4复合语句

复合语句其实就是前⾯讲过的代码块,成对括号中的代码就构成⼀个代码块,也被称为复合语句。

#include <stdio.h>
void print(int arr[], int sz) //函数的⼤括号中的代码也构成复合语句
{
 int i = 0;
 for(i=0; i<sz; i++)
 {
 printf("%d ", arr[i]);
 }
}
int main()
{
 int i = 0;
 int arr[10] = {0};
 for(i=0; i<10; i++) //for循环的循环体的⼤括号中的就是复合语句
 {
 arr[i] = 10-i;
 printf("%d\n", arr[i]);
 }
 return 0;
2.5控制语句

        控制语句⽤于控制程序的执⾏流程,以实现程序的各种结构⽅式(C语⾔⽀持三种结构:顺序结构、选 择结构、循环结构),它们由特定的语句定义符组成,C语⾔有九种控制语句。 可分成以下三类:

1. 条件判断语句也叫分⽀语句:if语句、switch语句;

2. 循环执⾏语句:do while语句、while语句、for语句;

3. 转向语句:break语句、goto语句、continue语句、return语句。

后期会给⼤家⼀⼀介绍控制语句。

3.注释

        注释是对代码的说明,编译器会忽略注释,也就是说,注释对实际代码没有影响。 注释是给程序员⾃⼰,或者其他程序员看的。 好的注释可以帮我们更好的理解代码,但是也不要过度注释,不要写没必要的注释。 当然不写注释可能会让后期阅读代码的⼈抓狂。 写注释⼀定程度上反应了程序作者的素质,建议⼤家写必要的注释,在未来找⼯作的时候,写代码时 留下必要的注释也会给⾯试官留下更好的印象。

3.1 注释的2种形式

C 语⾔的注释有两种表⽰⽅法。

1. /**/ 的形式 第⼀种⽅法是将注释放在 /*...*/ 之间,内部可以分⾏。

/* 注释 */
/*
 这是⼀⾏注释
*/

这种注释可以插在⾏内。

int fopen(char* s /* file name */, int mode);

上⾯⽰例中, /* file name */ ⽤来对函数参数进⾏说明,跟在它后⾯的代码依然会有效执⾏。 这种注释⼀定不能忘记写结束符号 */ ,否则很容易导致错误。

/**/ 的这个注释也不⽀持嵌套注释, /* 开始注释后,遇到第⼀个 */ 就认为注释结束了。

2.//形式

第⼆种写法是将注释放在双斜杠 // 后⾯,从双斜杠到⾏尾都属于注释。这种注释只能是单⾏,可以 放在⾏⾸,也可以放在⼀⾏语句的结尾。这是 C99 标准新增的语法。

// 这是⼀⾏注释

int x = 1; // 这也是注释

不管是哪⼀种注释,都不能放在双引号⾥⾯。 双引号⾥⾯的注释符号,会成为字符串的⼀部分,解释为普通符号,失去注释作⽤。

3.2注释会被替换

编译时,注释会被替换成⼀个空格,所以 min/* 这⾥是注释*/Value 会变成 min Value ,⽽不 是 minValue 。

最后:

        今天的学习到这里就结束了,期待与大家的再一次相逢。

完!

  • 15
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值