3.C语言编程预备计算机知识(一)

C语言编程预备知识

1.cpu、内存条、硬盘、显卡、主板、显示器之间的关系

以电影文件执行为例:双击硬盘上的电影文件,硬盘上的数据装载到内存条中,图像数据发送给显卡在显示器上显示图像,声音数据发送给声卡在音响上发出声音。主板是这些组件的桥梁,提供必要的插槽和接口,使得cpu 、内存条、 硬盘、 显卡相互连接协同工作。

2.HelloWorld程序如何运行起来的

 以HelloWorld程序执行为例:源文件经过编译和连接生成.exe文件,执行时请求操作系统调用cpu执行exe文件。

3.什么是数据类型

  编程首先要解决的问题就是数据的存储,自然就要对数据进行分类,一般分为整数、实数和字符。C语言分为基本数据类型(整型[整型int、长整型long int、短整型short int]、浮点型[单精度浮点数float、双精度浮点数double]、字符型char)和复合数据类型。

C语言的数据类型

基本数据类型
    整型
        整型 -- int              4
        长整型 -- long int      8
        短整型 -- short int     2
    浮点型
        单精度浮点型 -- float   4
        双精度浮点型 -- double  8
    字符型
        单个字符 -- char        1
复合数据类型
    结构体
    枚举
    共用体

4.什么是变量

 变量的本质就是内存中一段存储空间。

#include<stdio.h>
int main(void)
{
    int i;//操作系统会在内存中开辟一个内存空间,并和字母i之间建立关联,即内存地址和i建立关联 
    i = 3;//3最终存放在内存中,程序终止之后所占的空间被释放掉 
    printf("i = %d\n", i);
}

5.cpu 内存条 vc++6.0 操作系统 之间的关系

vc++6.0编译器请求操作系统在内存上分配一个存储空间,并和字母i建立关联,并将数据3存储到i所对应的内存空间中。 

6.变量为什么要初始化

初始化就是赋值的意思。

播放的视频文件关闭,操作系统就会释放存储空间(不是将存储空间清零,而是将使用权限可以分配给其它程序使用,存储空间中的数据就变成垃圾值),编译系统发现内存中某个空间存放的是垃圾值,就向空间中填充一个固定值 -858993460。

#include <stdio.h>
int main(void)
{
    int i;
    printf("i = %d\n",i);
}

运行结果:i = -858993460

一、内存的基本概念

(1)内存是用来存储数据的设备。它的存储速度介于寄存器和硬盘之间。

(2)内存是cpu唯一可以访问的大容量的存储设备!所有硬盘中的程序和数据必须调入内存之后方可被cpu执行!切记:cpu不能直接处理硬盘中的数据。

(3)内存的问题是软件开发中的核心问题之一!如:内存的分配,内存的释放,内存什么时候分配,内存什么时候释放,由谁来分配,由谁来释放,分配在什么地方,访问权限如何!

(4)内存是多个字节组成的线性一维存储空间。

(5)内存的基本划分单位是字节。

(6)每个字节含有8位,每一位存放1个0或1个1.

(7)字节的编号是一一对应的,每一个字节都有唯一确定的编号。

(8)一个系统所能管理的内存空间的大小取决于参与编号的二进制位数!

如:DOS系统20位寻址方案可控制220B即1MB的内存;386/486系统采用三个字节编址,可寻址224B即16MB的内存;奔腾寻址空间32位,其有效寻址空间232B即4GB.目前主流寻址空间64位,其有效寻址空间264B即16G.

二、软件运行与内存关系(垃圾数据)

内存是在操作系统的统一管理下使用的。

(1)软件在运行前需要向操作系统申请存储空间,在内存空闲空间足够时,操作系统将分配一段内存空间并将外存中软件拷贝一份存入该内存空间中,并启动该软件的运行。

(2)在软件运行期间,该软件所占内存空间不再分配给其他软件。

(3)当软件运行完毕后,操作系统将回收该内存空间(注意:操作系统并不清空该内存空间中遗留下来的数据),以便再次分配给其他软件使用。

综上所述:一个软件所分配到的空间中极可能存在着以前其他软件使用过后的残留数据,这些数据被称之为垃圾数据。所以通常情况下我们为一个变量,为一个数组,分配好存储空间之后都要对该内存空间初始化!

7.如何定义变量

 数据类型 变量名 = 要赋的值 等价于 数据类型 变量名; 变量名 = 要赋的值;

例子: int i = 3; 等价与 int i; i = 3;

    int i, j;  等价于 int i; int j;

    int i, j = 3; 等价于 int i; int j; j = 3;

    int i = 3, j = 5; 等价于 int i; int j; i = 3 ; j = 5;

    int i, j; i = j = 5; 等价于 int i; int j; i =3; j = 5;

8.什么是进制

十进制:逢十进一

二进制:逢二进一

八进制:逢八进一

十六进制:逢十六进一

例题:

1011B为二进制数1011,也记为(1011)2

1357O为八进制1357,也记为(1357)8

2049D为十进制数2049,也记为(2049)10

3FB9H为十六进制数3FB9,也记为(3FB9)16

#include <stdio.h>
int main(void)
{
    int i = 88;
    printf("%d\n", i);//%d表示十进制输出
    printf("%x\n", i);//%x表示十六进制输出
    printf("%o\n", i);//%o表示八进制输出
    return 0;
}

运行结果:

88
58
130

 注意:在C语言中,二级制没有输入输出格式说明符。

9.常量在c语言中如何表示的

 整数:

  十进制:正常写法

  十六进制:在前面加0x或0X

  八进制:前面是0(注意是数字0,不是字母o)

 

#include <stdio.h>
int main(void)
{
    int a = 15;
    int b = 0x15;
    int c = 015;
    printf("%d\n", a);
    printf("%d\n", b);
    printf("%d\n", c);
    return 0;
}

 

运行结果:

15
21
13

浮点数:

  传统写法:float x = 3.2//传统

  科学计数法;float x = 3.2e3;//x的值为3200

        float x = 123.45e-2;//x的值为1.2345

字符:

  单个字符用单引号括起来。

    ‘A’表示字符A ‘AB’错误   “AB”正确

  字符串用双引号括起来。

    "AB"  "hello"

10.常量以什么样的二进制代码存储在计算机中

整数是以补码的形式转化为二进制代码存储在计算机中;实数是以IEEE754标准转化为二进制代码存储在计算机中;字符的本质实际也是与整数的存储方式相同。

 

posted @ 2024-07-21 23:38  java帝国  阅读(13)  评论(0)    收藏  举报