字符型数据在内存中是以啥形式存放的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符型数据在内存中是以啥形式存放的相关的知识,希望对你有一定的参考价值。

字符型数据在内存中是以什么形式存放的字符型数据在内存中的存储形式是ASCII码。字符型数据是将一个字符常量放到一个字符变量中,并不是把该字符本身放到内存单元中去,而是将该字符的相应的ASCII代码放到存储单元中。

php入门到就业线上直播课:进入学习

本教程操作环境:windows7系统、c99版本、Dell G3电脑。

字符型数据在内存中储存的是它的ASCII码值,它是一个字节,所有数据类型在内存中都是以0和1代码二进制储存的,这个原则不会变。

在C语言中,char型数据是将一个字符常量放到一个字符变量中,并不是把该字符本身放到内存单元中去,而是将该字符的相应的ASCII代码放到存储单元中。

编码中,一个汉字字符存储需要2个字节。在UTF-8编码中,一个英文字母字符存储需要1个字节,一个汉字字符储存需要3到4个字节。在UTF-16编码中,一
参考技术A ASCII码。
字符型数据在内存中的存储形式是ASCII码。
参考技术B 字符型数据属于C语言。C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译,处理低级存储器,产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言的基本类型在内存中以二进制的形式储存的。包括整型数据,字符型数据和实型数据。

实验七

part 1:

1、观察两次的运行结果,更换后运行结果相同

技术图片技术图片

2、对比验证性实验3和验证性实验4的程序源码及运行结果

技术图片

技术图片

文本文件只能以字符形式储存变量。且有固定长度。如ASCII码每条数据(每个字符)都是1个字节。

二进制文件就是把内存中的数据按其在内存中存储的形式原样输出到磁盘中存放,即存放的是数据的原形式,无固定长度。

part2:

 1 #include <stdio.h>
 2 #include <string.h>
 3 #include <stdlib.h>
 4 const int N = 10;
 5 // 定义结构体类型struct student,并定义其别名为STU
 6 typedef struct student 
 7 long int id;
 8 char name[20];
 9 float objective; /*客观题得分*/
10 float subjective; /*操作题得分*/
11 float sum;
12 char level[10];
13 STU;
14 // 函数声明
15 void input(STU s[], int n);
16 void output(STU s[], int n);
17 void process(STU s[], int n);
18 int main() 
19 STU stu[N];
20 printf("录入%d个考生信息: 准考证号,姓名,客观题得分(<=40),操作题得分(<=60)\\n", N);
21 input(stu, N);
22 printf("\\n对考生信息进行处理: 计算总分,确定等级\\n");
23 process(stu, N);
24 printf("\\n打印考生完整信息: 准考证号,姓名,客观题得分,操作题得分,总分,等级\\n");
25 output(stu, N);
26 return 0;
27 
28 // 从文本文件examinee.txt读入考生信息:准考证号,姓名,客观题得分,操作题得分
29 void input(STU s[], int n) 
30 FILE *fp;
31 int i;
32 fp=fopen("examinee.txt","r");
33 if(!fp)
34 printf("fail to open examinee.txt\\n");
35 exit(0);
36 
37 for(i=0;i<n;i++)
38 fscanf(fp,"%ld %s %f %f",&s[i].id,s[i].name,&s[i].objective,&s[i].subjective);
39 
40 fclose(fp);
41 
42 // 输出考生完整信息: 准考证号,姓名,客观题得分,操作题得分,总分,等级
43 // 不仅输出到屏幕上,还写到文本文件result.txt中
44 void output(STU s[], int n) 
45 FILE *fpp;
46 int i;
47 fpp=fopen("result.txt","w");
48 if(!fpp)
49 printf("fail to open result.txt\\n");
50 exit(0);
51 
52 for(i=0;i<n;i++)
53 printf("%ld   %s   %lf   %lf   %lf   %s\\n",s[i].id,s[i].name,s[i].objective,s[i].subjective,s[i].sum,s[i].level);//输出至屏幕 
54 fprintf(fpp,"%ld   %s   %lf   %lf   %lf   %s\\n",s[i].id,s[i].name,s[i].objective,s[i].subjective,s[i].sum,s[i].level);//输出至文件 
55 
56 fclose(fpp);
57 
58 // 对考生信息进行处理:计算总分,排序,确定等级
59 void process(STU s[], int n) 
60 int i,j;
61 STU t;
62 for(i=0;i<n;i++)
63 s[i].sum=s[i].objective+s[i].subjective;
64  
65 for(i=0;i<n;i++)
66 for(j=0;j<n-1-i;j++)
67 if(s[j].sum<s[j+1].sum)
68 t=s[j];
69 s[j]=s[j+1];
70 s[j+1]=t;
71 
72  
73   
74 strcpy(s[0].level,"优秀");
75 for(i=1;i<=4;i++)
76 strcpy(s[i].level,"合格");
77 
78 for(i=5;i<=9;i++)
79 strcpy(s[i].level,"不合格");
80 
81 

技术图片

实验总结和体会:

1、对清楚了二进制文件和文本文件区别。

2、通过part2代码训练,对本章的知识有了更深的认识。

以上是关于字符型数据在内存中是以啥形式存放的的主要内容,如果未能解决你的问题,请参考以下文章

在C语言中,unsigned char是啥类型

c 文件

char能储存啥?

int类型和char类型的区别

整型数据在内存中的存放形式

c语言中字符型数据在内存中的存储形式是?