C语言学习笔记【持续更新】——1初始C语言(上)

一、C语言是啥呢

首先要和大家交代一些观念

1.语言是什么?

语言是一种系统,什么系统呢?

  • 由一系列符号组成的系统,这些符号可以是声音、文字或者手势。这些符号组合的方式遵循一定的语法规则,代表着一定的意义,它们可以作为交流的工具去传达某种信息、情感和思想。

和谁交流呢?

  • 人与人之间的交互发展形成了自然语言,比如汉语,英语等; 
  • 人与物之间的交互发展形成了人工语言,比如人与计算机的交互产生了汇编语言、C语言等;
  • 物与物之间的交互,比如蜜蜂的舞语等。

那语言的构成怎么样呢?

  • 语音:语言的发音系统,包括音素(最小的语音单位)和音节(发音的基本单位);比如汉语的韵母、声调
  • 词汇:语言中的单词和短语,是表达意义的基本单元;比如汉语里的汉字,成语
  • 语法:语言的构造规则,包括词的排列顺序、词形变化等;比如汉语里的主语谓语宾语、陈述句、倒装句等

2.那同理来说,C语言是什么呢?

  • C语言是一种由一系列特定符号组成的编程语言系统,这些符号主要是文字和特殊字符。这些符号按照C语言的语法规则组合起来,形成有意义的代码,它们可以作为指令去控制计算机执行特定的操作。

和谁交流呢?

  • C语言是人与计算机之间交流的工具,程序员通过编写C语言代码,与计算机进行交互,指导计算机完成各种计算和任务处理。

那C语言的构成怎么样呢?

  • 关键字:C语言中具有特定意义的一些单词,如if、else、while等,它们是构成C语言代码的基础词汇;
  • 变量和常量:用于存储和表示数据的基本单元,变量可以改变值,而常量在程序运行过程中保持不变;
  • 运算符:用于执行数学或逻辑运算的符号,如+、-、*、/等;
  • 语法规则:C语言中定义了代码的书写规则,包括如何声明变量、如何编写控制语句(如if-else、for、while循环)、函数的定义和使用等;
  • 函数:C语言中用于执行特定任务的自包含代码块,可以看作是语言的基本操作单元。

通俗来说,那就是 C语言就像是一种特殊的“食谱”,它告诉计算机如何“烹饪”出我们想要的“菜肴”(即程序)。如果中华小当家的老板你想要做一道菜,那你就需要写下一个步骤清单(代码),这个清单上有各种食材(数据)和烹饪方法(函数)。C语言就是这个清单的写法,它让计算机这个“大厨”能够按照你的指示做出你想要的“菜”哦。

3.小扩展

那如果你听到过比如C语言是面向过程的语言,python/java是面向对象的语言,这究竟是怎么理解呢? 

  • 面向过程和面向对象是两种不同的编程范式,它们代表了程序员思考和解决问题的方式;
  • 面向过程强调的是“怎么做”,即如何按照一定的顺序执行一系列的操作来解决问题。我举个例子,如果我们要描述一个人去图书馆借书的过程:描述可能是:走到图书馆门口 -> 打开门 -> 走进去 -> 找到图书管理员 -> 请求借书 -> 等待管理员找到书 -> 借到书 -> 离开图书馆;
  • 面向对象强调的是“谁来做”,即对象之间如何通过相互作用来完成特定的任务。我们通常关注事物(对象)本身以及它们能做什么,而不是执行的具体步骤。同样的例子,如果我们要描述一个人去图书馆借书的过程:描述可能是:人(对象)走到图书馆(对象) -> 图书馆开门 -> 人请求图书管理员(对象)借书 -> 管理员操作图书(对象) -> 人借到书

二、第一个C语言程序怎么样呢

#include <stdio.h>
int main()
{
    printf("hello YoGe\n");
    printf("YoGe so handsome\n");
    return 0;
}

//    逐行逐词解释:

#include <stdio.h>  // 包括标准输入输出库的头文件

//        include包括;std(standard)标准;i(intput)输入;o(output)输出;.h头文件格式

//        #预处理指令的开始符号——include预处理指令用于包含其他文件的内容——<stdio.h>这是一个头文件,它包含了标准输入输出库的声明,使得我们可以使用如printf这样的函数——

int main()  // 主函数的定义

//        int关键字,表示返回类型为整数;main主函数是每个C程序的入口点;()函数的参数列表,这里没有参数,所以它是空的
//main主函数作用:
//        程序执行的起点:运行C程序时,会从main函数开始执行代码
//        程序流程控制:main函数负责调用其他函数,以及控制程序的流程
//        返回值:main函数通过返回一个整数值来向操作系统报告程序的执行状态,通常返回0表示程序正常结束,非0值表示异常或特定的错误代码
// 注意
//在一个C程序中,main函数有且只能有一个
//main函数不能被其他函数调用,它是程序启动时由操作系统调用的
//main函数在程序的生命周期内只执行一次
//main函数是程序中第一个被执行的函数,其他函数的执行都是通过在main函数中直接或间接调用来实现的

    printf("hello YoGe\n");  // 调用printf函数打印字符串
    printf("YoGe so handsome\n");  // 再次调用printf函数打印另一字符串

//        printf这是标准输入输出库中的一个函数,用于打印格式化的字符串。

//        "hello YoGe\n"/"YoGe so handsome\n"字符串常量用" ",hello YoGe/YoGe so handsome是要打印的文本,\n是一个转义序列,表示换行。

return 0;// 结束main函数,返回0

 //        return:这是一个关键字,用于从函数返回一个值。

//        0:这是返回的值,通常表示程序成功执行完毕。


三、数据类型是什么

1.如何理解数据类型

在文章开头,我给大家举出了语言和C语言的共通之处,那么我们如何理解C语言中的数据类型呢?其实,在中文汉语语言系统中,我们如果要去描述某个物品或者某个词汇,我们需要知道该词汇的类型是什么,比如名词,动词,副词等,C语言同样如此,需要对数据的类型用途进行分类,但是,编程语言和自然语言在功能和结构上有本质的不同,这些类比只是为了帮助理解概念。

C语言中的数据类型是指用于声明变量、函数返回值或者表达式中操作数的特性。数据类型决定了变量存储占用的空间大小以及可以存储的值的范围。理解数据类型可以帮助我们更有效地使用内存,并且确保程序的正确性。好比是不同大小的容器,每种容器只能装特定类型的东西,而且每种容器的大小和用途都不一样。

  • 不同的东西需要不同的容器 [变量存储]:比如,你要装水就不能用漏的容器,要装油就不能用装水的容器,因为油和水不兼容。在编程中,整数、小数、文字等数据也是一样,需要不同的容器来装。每种数据类型告诉编译器分配多少内存给变量(例如,int类型通常占用4个字节)
  • 节省空间 [值的范围]:如果你只需要装一点点水,用一个很大的桶就太浪费了。同样,如果你只需要存一个很小的数字,用一个很大的容器来存就会浪费内存空间。数据类型规定了变量可以存储的值的范围(比如,int类型可以存储的整数范围通常是-2,147,483,648到2,147,483,647)
  • 方便使用 [操作]:不同类型的容器有不同的用法。比如,有些容器可以方便地计算,有些容器可以方便地存放很多相似的东西。数据类型还决定了可以对变量执行哪些操作(比如,你不能对整数类型执行取模运算)

存在这么多的类型,其实是为了更加丰富的表达生活中的各种值 

2.数据类型有哪些

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

3.每种数据类型的大小怎么样

#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;
}

//"%d\n"这是一个格式字符串                      //%d表示打印一个整数,\n表示换行    //sizeof()这是一个操作符,用于获取数据类型的大小(以字节为单位)

在计算机科学中,字节(Byte)是数据存储和传输的基本单位。以下是数据单位之间的换算关系:

  • 1 Byte(字节) = 8 bits(位)
  • 1 Kilobyte(KB) = 1,024 Bytes
  • 1 Megabyte(MB) = 1,024 Kilobytes 
  • 1 Gigabyte(GB) = 1,024 Megabytes
  • 1 Terabyte(TB) = 1,024 Gigabytes
  • 1 Petabyte(PB) = 1,024 Terabytes
  • 1 Exabyte(EB) = 1,024 Petabytes
  • 1 Zettabyte(ZB) = 1,024 Exabytes
  • 1 Yottabyte(YB) = 1,024 Zettabytes

如图所示,根据运行结果可得,各数据类型的代销

  • char(字符):1个字节(8位)
  • short(短整数):2个字节(16位)
  • int(整数):4个字节(32位)
  • long(长整数):4个字节(32位)
  • long long(长长整数):8个字节(64位)
  • float(单精度浮点数):4个字节(32位)
  • double(双精度浮点数):8个字节(64位)
  • long double(长双精度浮点数):12个字节(96位)或16个字节(128位)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值