自学C语言入门教程(上)

 什么是C语言?

C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易
的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
C语言一经出现就以其功能丰富、表达能力强、灵活方便、应用面广等特点迅速在全世界普及和推广。C语言不但执行效率高而且可移植性好,可以用来开发应用软件、驱动、操作系统等。
许多著名的系统软件就是基于C语言开发的。

为什么要使用C语言呢?

C 语言最初是用于系统开发工作,特别是组成操作系统的程序。由于 C 语言所产生的代码运行速度与汇编语言编写的代码运行速度几乎一样,所以采用 C 语言作为系统开发语言。

C语言的标准

为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制
定了一套完整的美国国家标准语
法,称为ANSI C,作为C语言最初的标准。 [1] 目前2011年12月8日,国际标准化组织(ISO)和
国际电工委员会(IEC)发布的C11。
C11是当前最新的C语言标准。在它之前的C语言标准为C99。

敲出我们第一个C语言程序

#include <stdio.h>

int main()
{
   /* 我的第一个 C 程序 */
   printf("Hello, World! \n");

   return 0;
}

相信许多刚刚学习编程的小白(包括我),敲得第一个程序都是这个,那么这个代码怎么去理解呢?

      

  1. 程序的第一行 #include <stdio.h> 是预处理器指令,告诉 C 编译器在实际编译之前要包含 stdio.h 文件。也就是我们常说的包含头文件。
  2. 下一行 int main() 是主函数,程序从这里开始执行。main()函数是程序的入口,而且整个程序中有且只有一个main()函数哦。
  3. 下一行 /.../ 将会被编译器忽略,这里放置程序的注释内容。它们被称为程序的注释。在编程过程中如果遇到不需要的代码,可以直接删除也可以注释掉。当遇到比较难懂的代码,也可以文字注释下,方便自己阅读代码。
    //第一种注释方法如下:
    
    // 单行注释
    
    ----------------------------
    //第二种注释方法如下()这种方法不可以嵌套使用
    
    /* 单行注释 */
    /* 
     多行注释
     多行注释
     多行注释
     */
  4. 下一行 printf(...) 是 C 中另一个可用的函数,会在屏幕上显示消息 "Hello, World!"。
  5. 下一行 return 0; 终止 main() 函数,并返回值 0。

数据类型

char        //字符数据类型
short       //短整型
int         //整形
long        //长整型
long long   //更长的整形
float       //单精度浮点数
double      //双精度浮点数

注意:有这么多类型是为了更好的描述生活中各种各样的数值

如果我们想知道每个类型所占内存空间大小该怎么做呢?

这里我们可以使用sizeof()运算符进行计算,计算出的数值单位是比特。

#include <stdio.h>
int main()
{
    printf("%d\n", sizeof(char));
    printf("%d\n", sizeof(short));
    printf("%d\n", sizeof(int));
    printf("%d\n", sizeof(long));
    printf("%d\n", sizeof(long long));
    printf("%d\n", sizeof(float));
    printf("%d\n", sizeof(double));
    printf("%d\n", sizeof(long double));
    return 0; }

常量

在我们的显示生活中,有许多的值是不会改变的。比如:身份证、血型、性别等。

而这些不会改变的值,在C语言中用常量来表示。

常量的定义方法

int age = 20;
float weight = 70.3f;
char ch = 'C';

C语言中的常量分为以下以下几种:

字面常量

int main()
{
    //字面常量演示
    3.14;//字面常量
    1000;//字面常量
    
 return 0; }

const 修饰的常变量

int main()
{
   
    
    //const 修饰的常变量
    const float pai = 3.14f;   //这里的pai是const修饰的常变量
    pai = 5.14;//是不能直接修改的!
   
 return 0; }

#define 定义的标识符常量

//#define的标识符常量

 #define MAX 100
int main()
{
   
    printf("max = %d\n", MAX);
        
 return 0; }

枚举常量

#include<stdio.h>

enum Sex
{
 MALE,
 FEMALE,
 SECRET
};
//括号中的MALE,FEMALE,SECRET是枚举常量

int main()
{
     //打印枚举常量
    printf("%d\n", MALE);
    printf("%d\n", FEMALE);
    printf("%d\n", SECRET);
    return 0;
}

变量

定义变量的方法

#include<stdio.h>
int main()
{
    int age =20;
    float pai =3.14f//如果不加f,编译器默认为double类型
    return 0;
}

注意

        创建变量的时候一定要初始化,局部变量如果不初始化,它的值是随机的!!

变量的分类

在C语言中一个{ }就是一个代码块。

在代码块内部定义的变量就是局部变量。

在代码块外面定义的变量就是全局变量。

#include <stdio.h>
int a = 2022;//全局变量
int main()
{
    int b = 2020;//局部变量
    //下面定义的global会不会有问题?
    int a = 2020;//局部变量
    printf("a = %d\n", global);
    return 0; }
总结:
上面的局部变量a变量的定义其实没有什么问题的!
当局部变量和全局变量同名的时候,局部变量优先使用。

变量的使用

#include <stdio.h>
int main()
{
    int num1 = 0;
   int num2 = 0;
    int sum = 0;
    printf("输入两个操作数:>");
    scanf("%d %d", &num1, &num2);
    sum = num1 + num2;
    printf("sum = %d\n", sum);
    return 0; }
//这里介绍一下输入,输出语句
//scanf -> 输入函数
//printf -> 输出函数

变量的生命周期和作用域

作用域

局部变量的作用域就是变量所在的局部范围。

全局变量的作用域就是整个程序。

生命周期

局部变量:进入局部变量所在的范围,生命周期开始,出了局部变量所在的范围,生命周期结束。

全局变量:就是整个程序的生命周期。

字符串+转义字符

字符串

"hello bit.\n"

由双引号引起的一串字符就是字符串。

注意:

字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串
内容。

转义字符

转义字符   释义
\?在书写连续多个问号时使用,防止他们被解析成三字母词
\' 用于表示字符常量'
\“  用于表示一个字符串内部的双引号
\\用于表示一个反斜杠,防止它被解释为一个转义序列符。
\a警告字符,蜂鸣
\b退格符
\f进纸符
\n换行
\r回车
\t水平制表符
\v垂直制表符
\dddddd表示1~3个八进制的数字。 如: \130 X
\xdd dd表示2个十六进制数字。 如: \x30 0

选择语句

要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。

在C语言中提供了以下选择语句:

语句描述
if 语句一个 if 语句 由一个布尔表达式后跟一个或多个语句组成
if...else 语句
一个 if 语句 后可跟一个可选的 else 语句,else 语句在布尔表达式为假时执行。
嵌套 if 语句您可以在一个 if 或 else if 语句内使用另一个 if 或 else if 语句。
switch 语句一个 switch 语句允许测试一个变量等于多个值时的情况。
嵌套 switch 语句
您可以在一个 switch 语句内使用另一个 switch 语句。

循环语句

有的时候,我们可能需要多次执行同一块代码。一般情况下,语句是按顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。

在C语言中提供了以下循环语句:

循环类型描述
while 循环当给定条件为真时,重复语句或语句组。它会在执行循环主体之前测试条件。
for 循环多次执行一个语句序列,简化管理循环变量的代码。
do...while 循环除了它是在循环主体结尾测试条件外,其他与 while 语句类似。
嵌套循环您可以在 while、for 或 do..while 循环内使用一个或多个循环。



循环控制语句

循环控制语句改变你代码的执行顺序。通过它你可以实现代码的跳转。

C 提供了下列的循环控制语句。

控制语句描述
break 语句终止循环或 switch 语句,程序流将继续执行紧接着循环或 switch 的下一条语句。
continue 语句告诉一个循环体立刻停止本次循环迭代,重新开始下次循环迭代。
goto 语句将控制转移到被标记的语句。但是不建议在程序中使用 goto 语句。

无限循环

如果设置的条件不为假,这个循环就不会停止,就变成我们常说的死循环!

for 循环在传统意义上可用于实现无限循环。由于构成循环的三个表达式中任何一个都不是必需的,可以将某些条件表达式留空来构成一个无限循环。

#include <stdio.h>
 
int main ()
{
   for( ; ; )//三个表达式都为空
   {
      printf("这个循环就吃了炫迈!根本停不下来!!!\n");
   }
   return 0;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值