首页 > 其他分享 >C语言基础一:概述

C语言基础一:概述

时间:2024-12-08 21:31:04浏览次数:8  
标签:函数 符号 int 基础 C语言 概述 整型 常量

C语言:概述

章节内容

计算机组成:

中央处理器CPU

内存

输入设备

输出设备

网络

C语言程序的开发过程

开发三步骤

  1. 编辑(编写代码):程序员向.C文件写入程序

  2. 编译(编译的详细过程):将源文件(.c)编译成可执行程序(二进制)

    编译过程分为4步

    • 预处理

    • 编译

    • 汇编:

    • 链接

  3. 运行:运行可执行文件

    程序结构说明

    #include <stdio.h>
     // 入口函数:每一个.c文件有且仅有一个入口函数
    // C语言中入口函数的返回值和参数列表比较灵活,唯一的要求:函数名必须是main
     int main(int argc,char *argv[])
     {
        // 向控制台输出hello world!
        printf("hello world!\n");// 一行代码执行结束,使用“;”表示结束
        return 0; 
    }
    
    • 注释:

      代码中起到解释说明的文字

    • 预处理命令:

      程序中包含的某一文件内容

    • 主函数

      C程序的入口函数,一个C文件有且仅有一个主函数

    • 函数首部(函数头)/函数说明

      说明函数类型,函数名和函数参数 如:int main()

    • 函数体:

      包括变量说明及语句执行部分,如:{…}

    • 函数调用语句:

      比如格式输出函数:printf(),输出“hello world!”

    编写规范

    • 常用缩进书写格式(一般缩进2-4个字符,推荐4个)

    • 有足够的注释(添加必要的注释,使代码更好理解)

    • 有合适的空行(一般预处理命令和函数、全局变量和函数、函数与函数之间有空行,使得代码结构更清晰)

    • {}对齐(c和c++中 {}独占一行)

    • 函数体内采用分层缩进和模块化的书写方式。

    • 不把多条语句写在程序的同一行上。

    • 命名:变量或者函数命名要尽可能包含更多含义,但不能太长。

      int stedent_number;
      int stu_id;
      

C语言程序特点

C语言程序在设计时,需要注意以下细节

  • 一C程序由一个或多个函数构成,但有且仅有一个主函数(main函数);main函数是程序执行的入口,可置于程序任意位置。
  • 程序中可以有预处理命令(如#include命令)预处理命令通常在程序的最前面
  • 每个语句可以分号结尾;预处理命令、函数头和花括号之后不能加分号
  • 函数体由一对花括号括起来
  • 包含在/…内的文本为注释。
  • 一行可以写几个语句,一个语句也可以写在多行上。
  • 程序区分大小写字母。一般变量、语句等用小写字母书写;符号常量、宏名等用大写字母书写。
  • 标识符和保留字之间必须加空格分割,如:int age。

C语言中的注释

在C语言中,注释一般分为两类,单行和多行

注释的作用:给代码添加解释说明文字,提升代码的可读性,注释本身是不会被执行的。同时也可以使用注释屏蔽代码

单行注释

说明:单行注释使用双斜杠//表示。我们一般用于常量、变量的定义。

语法:

//单行注释

多行注释 说明:多行注释使用斜杠星号 说明。 语法: 1 2 3 4 /* 要注释 的代码 / /…*/ 表示。他可以占用多行代码,但不能嵌套。我们一般用于函数,文件

数据类型

定义:

数据类型其实是固定大小内存的别名,并且描述了一个变量存放什么类型的数据。简单来说,就是组织和操作数据。

数据:计算机要处理的数据(数字、字符串、文字、符号、图片、音频、视频等)。

  • 数据类型不仅帮我们组织和操作数据,还决定了程序如何有效的利用内存。

  • 了解数据类型的内存需求是理解计算机管理和操作数据的关键。

    小贴士

    简单来说,程序的运行需要用到内存。

内存存储单位

字节(byte):计算机存储容量的一种单位,一般应用层最小存储单元的表示。

比特位(bit):二进制数(0和1)计算机是以二进制的方式进行存储的,我们应用层可以通过位运算进行位的操作。

1个字节(BYTE)=8位(BIT)

1个千字节(KB)=1024字节

1MB =1024KB

1GB = 1024MB

1TG = 1024GB

数据类型分类和计算方法

数据类型在内存中的大小
序号数据类型中文说明大小(字节)
1int整型4
2short短整型2
3long长整型4(32位)8(64位)
4long long长长整型8
5float单精度浮点型4
6double双精度浮点型8
7char字符型1
8bool(BOOL)布尔型(真-true,假-false)bool:1,ture:4;false:4

:注意:因为C语言没有Byte这个单位,所以我们一般使用char来表示字节,因为==1个char 1个byte

注意:

某个数据类型或者变量所占的字节所占的字节数->sizeof(某个数据类型或变量名)

printf("true size:%d\n",sizeof(true));//ture size:4
printf("false size:%d\n",sizeof(false));//false size:4
printf("bool size:%ld\n",sizeof(bool));//bool size:1

总结:

​ ①数据类型在内存中所占的字节数跟C语言的编译系统有关。

​ ②计算某个数据类型所占的字节数可以用sizeof.

​ ③布尔类型要添加#include <stdbool.h>,也可以用int类型的0表示假,非0表示假。

课堂练习

校验各个数据在内存中的大小?

常量与变量

在C语言中,数据的基本表现形式是常量和变量。不管是常量还是变量都需要在内存中开辟一块空间,用于数据的存放。

常量

  • 定义:在程序执行过程中其值不能改变的量
  • 分类:int、float、double、char和符号常量。
整型常量(int)
  • 整型常量可用十进制、八进制、十六进制三种形式表示。

    • 十进制整型常量:由0-9数字组成,没有前缀,不能以0开头(如:0可以,09不可以)

    • 八进制整型常量:以0为前缀,其后由0-7的数字组成,没有小数部分。(如023)

    • 十六进制整型常量:以 0x0X为前缀,其后由 0-9的数字和 A-F字母组成,没有小数部分。(如:0X00FF0000)

      整型常量中的长整型数据可用 L作为后缀(比如:123L)\

    • 整型常量的分类

      • 有符号与无符号基本整型常量-128 - 127
      • 有符号与无符号长整形常量
      • 有符号与无符号短整型常量
    • 整型常量的表示

      • 十进制表示:可以使用10个数字符号0-9以及+,-,如:123,-456
      • 八进制表示:以0开头,可以使用7个数字符号0-7以及+,-,如:0123,-011
      • 十六进制:以0x开头,符号有 0-9 A-F,如:0x12
浮点型常量

c语言中的浮点数就是平常所说的实数,有两种表现形式;

  • 十进制小数形式:如0.123,-17.8
  • 指数形式(科学计数法),如:1230.0可以表示为1.23e3或1.23E3

注意:

①在符号e的后面必须要有数字

​ ②在符号e的后面必须为整数,不能是带有小数点的实数型。实数型常量的后缀用F(或f)表示单精度型。后缀用L(或l)表示双精度型。

字符常量

用单引号 ‘’括起来的一个字符,如:‘a’、‘A’、‘_’等,比如:‘霍’就不是字符,一个汉字所占的字节数超过了一个。中文符号当成汉字理解。英文输入法下输入的字母数字符号都是单字符。

转义字符常量:以反斜杠 \开头的字符序列,表示控制及不可见的字符,如:

序号字符形式含义ASCLL码
1\n换行10
2\r回车13
3\0空字符0
4\t水平制表9
字符串常量

说明:在C语言中是支持字符串常量的,但不支持字符串变量,字符串变量需要使用字符数组或字符指针实现

  • 用一对括号 ""括起来的一个字符序列,如:“How do you do?”“12.25”

  • 可以输出一个字符序列,如:printf(“hello world\n”);

    注意:

    字符串常量“a”与字符常量’a’的区别:

    字符串有两个字节(包含\0),而字符常量a只有一个字节

    系统自动为字符常量加上结尾的”\0“,所占用内存单元多一个,单字符常量的长度,可用sizeof()运算符来测量。

符号常量

定义一个标识符来代表一个常量。

  • 如:用PI代表圆周率Π,即:3.1415926

好处:

  • 增加可读性
  • 增强了可维护性

定义符号常量:

  • 用编译预处理命令 #define(宏定义)

    格式:

#define 标识符 字符串
  • 标识符和字符串之间用空格隔开

  • 句末不用分号

  • 表示符的命名采用大写,如果有多个单词,使用下划线分隔,举例:MAX_VAL,MIN_VAL,AVG

    #include <stdio.h>
    #define PI 3.14
    #define R 5
    int main()
    {
        int a =PI*R*R,//预处理后:int a=3.14*5*5
    }
    

    案例:

    在程序中使用符号常量。

    #define PRICE 30/*给变量赋值*/
    #include <stdio.h>
    void maih()
    {
    	int num,total;/*定义整型变量*/
    	num = 10;/*给变量赋值*/
    	total = num * PRICE;/*符号常量参加运算*/
    	printf("total=%d\n", total);
    

说明:

  • 程序中⽤#define PRICE 30定义了符号常量PRICE的值为30,伺候程序中出现的PRICE都⽤30代替。

  • 符号常量不占内存单元。

  • 此后在本函数中不允许改变PRICE的值,也不允许再为其赋新的值。

  • 使⽤符号常量的好处:

    • 含义清楚
    • ⼀改全改

标签:函数,符号,int,基础,C语言,概述,整型,常量
From: https://blog.csdn.net/m0_64837308/article/details/144331424

相关文章

  • 2024-2025-1 20241312 《计算机基础与程序设计》第十一周学习总结
    作业信息这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2024-2025-1计算机基础与程序设计第十一周作业)这个作业的目标计算机网络网络拓扑云计算网络安全WebHTML,CSS,Javascript......
  • 2024-2025-1 20241409 《计算机基础与程序设计》第十一周学习总结
    作业信息这个作业属于哪个课程 <班级的链接>(2024-2025-1-计算机基础与程序设计)这个作业要求在哪里 <作业要求的链接>(2024-2025-1计算机基础与程序设计第十一周作业)这个作业的目标 计算机网络网络拓扑云计算网络安全WebHTML,CSS,JavascriptXML作业正文 https://www.cnblo......
  • 2024-2025-1 20241403 《计算机基础与程序设计》第十一周学习总结
    2024-2025-120241403《计算机基础与程序设计》第十一周学习总结作业信息这个作业属于哪个课程<班级的链接>(2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(2024-2025-1计算机基础与程序设计第十一周作业)这个作业的目标计算机网络网络拓......
  • Java基础 —— 泛型
    泛型 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。理解 为了可以进一步理解泛型,我们先来看一个问题需求: 编写一个程序,在ArrayList中添加三个对象,类中要有name、age属性,输出对象的name、age属性首先,我们先用传统方法进行编写packag......
  • 【Liunx篇】基础开发工具 - vim
    文章目录一.vim的基本概念1.正常/命令模式2.插入模式3.底行模式/末行模式4.视图模式5.替换模式二.vim的基本操作1.进入vim:2.退出vim:三.vim正常模式命令集1.光标定位:2.复制/粘贴3.撤销4.剪切/删除5.更改四.vim底行模式命令集1.保存/退出2.调出行号3.搜索字符4.命令......
  • 2024-2025-1 20241409《计算机基础与程序设计》第二周学习总结
    这个作业属于哪个课程2024-2025-1-计算机基础与程序设计这个作业要求在哪里[2024-2025-1计算机基础与程序设计第二周作业](https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP/homework/13266)这个作业的目标数字化信息安全*自学教材:计算机科学概论(第七版)第1......
  • 2024-2025-1 20241327 《计算机基础与程序设计》第十一周学习总结
    作业信息|2024-2025-1-计算机基础与程序设计)||--|-|2024-2025-1计算机基础与程序设计第十一周作业)||快速浏览一遍教材计算机科学概论(第七版),课本每章提出至少一个自己不懂的或最想解决的问题并在期末回答这些问题|作业正文|https://www.cnblogs.com/shr060414/p/18440575|......
  • 2024-2025-1 20241409《计算机基础与程序设计》第三周学习总结
    这个作业属于哪个课程 <班级的链接>这个作业要求在哪里 <作业要求的链接>这个作业的目标 自学《计算机科学概论》第2、3章作业正文 https://www.cnblogs.com/smpj/p/18593768教材学习内容总结《计算机科学概论》第二章主要介绍了数字、位置记数法、十进制数与其他数制的数......
  • 实验5 C语言指针应用编程
    1.实验任务1#include<stdio.h>#defineN5voidinput(intx[],intn);voidoutput(intx[],intn);voidfind_min_max(intx[],intn,int*pmin,int*pmax);intmain(){inta[N];intmin,max;printf("录入%d个数据:\n",N);inpu......
  • 2024-2025-1 20241416 《计算机基础与程序设计》第十一周学习总结
    这个作业属于哪个课程2024-2025-1-计算机基础与程序设计这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK11这个作业的目标计算机网络网络拓扑云计算网络安全WebHTML,CSS,JavascriptXML作业正文https://www.cnblogs.com/rockytyh/p/1......