一、第一行代码,数据存储,数据类型和变量

一、第一行代码,数据存储,数据类型和变量第一行代码 数据存储 数据类型和变量 C 语言入门 日拱一卒 每天进步一点点 第一行代码

大家好,欢迎来到IT知识分享网。

第一行代码,数据存储,数据类型和变量

1.第一行代码
1.1 C 语言第一行代码
// C 语言标准输入输出库头文件,最基本的 C 语言头文件 #include <stdio.h> // main 函数是整个程序的入口 int main(int argc, int argv[]) { /* 在控制台打印展示 hello world %s 是 C 语言打印使用的标记类型,对应的字符串 */ printf("%s\n", "Hello World!"); return 0; } 
1.2 编译执行 C 语言代码

需要使用编译工具是 GCC,编译格式

gmy@gmy:~/CODE/day2$ gcc 01_C语言第一行代码.c # 整体格式可以总结为 gcc 目标C语言文件.c # 得到的最终可执行文件是一个 a.out,默认的文件名和类型, .out在Linux 系统中是终端可执行文件,类似于 Windows 操作系统的 exe 文件 

执行 a.out 终端可执行文件

gmy@gmy:~/CODE/day2$ ./a.out # ./ 表示当前工作目录的文件, . 表示当前工作目录 / 是路径分隔符 # a.out 是可执行文件 # 执行结果 Hello World! 

在这里插入图片描述

1.3 第一行代码需要注意的内容
  • 注意标点符号一定是英文符号/半角符号
  • 成双成对的标点符号一次完成,不要后续补充。仅有一下标点符号:

    “”, ‘’ , <> , [] , {} , ()

  • 注意拼写问题,注意代码颜色,如果颜色不对劲,就是有问题。
  • 注意代码格式,缩进对齐,必须提供必要的空格空行
2. 数据类型
2.1 计算机数据存储单位

计算机最小存储单位字节(byte), 一个字节对应 8 个比特位 (bit) 二进制位

存储单位的进制关系 1024 算术进制 1024 Byte ==> 1 KB 1024 KB ==> 1 MB 1024 MB ==> 1 GB 1024 GB ==> 1 TB 生产过程中使用进制是 1000 【了解】 
2.2 数据进制

开发中常用的数据进制有十进制 二进制 八进制 十六进制

进制 进制基数 禁止要求
十进制 0 ~ 9 逢 10 进 1
二进制 0,1 逢 2 进 1
八进制 0 ~ 7 逢 8 进 1
十六进制 0 ~ 9,A ~ F 逢 G (16)进 1

【了解】进制数据转换过程和数据展示形式

数据展示形式

十六进制数据展示要求, 0x 开头,或者 0X 开头 例如: 0xABCD 0xabcd 0xff11 0x11FF 十六进制不区分大小写 八进制数据展示要求,要求 0 开头,但是 0 可以省略 例如: 0777 0775 0555 二进制数据案例 0111 0110(2) 

数据转换过程

  • 熟练掌握计算机使用
0x11FF ABCD 十六进制 十进制 301,968,333 八进制 2 177 725 715 二进制 0001 0001 1111 1111 1010 1011 1100 1101 

在这里插入图片描述

12345 八进制 十六进制 14E5 十进制 5,349 二进制 0001 0100 1110 0101 

在这里插入图片描述

3. 常量和数据类型推演
3.1 生活中常量数据

整数,浮点数,字符,字符串

数值: 10 20 30 -10 -20 -30 ==> 整数 3.14 6.18 ==> 小数/浮点数 文字:字符常量使用英文单引号包含,并且 C/C++ 不推荐使用单引号包含中文内容 '中' '好' 中文汉字 'A' 'B' 'C' 英文字母 '1' '2' '3' 数字字符 文本: ===> 字符串 字符串常量使用英文双引号包含,双引号内部的所有内容都是字符串内容 "北国风光,千里冰封,万里雪飘..." 
3.2 常量案例代码
#include <stdio.h> int main(int argc, char *argv[]) { // 整数常量演示 printf("整数:%d\n", 10); printf("整数:%d\n", 3); printf("整数:%d\n", 1024); // 浮点数常量演示 printf("浮点数:%f\n", 3.14); printf("浮点数:%f\n", 6.18); printf("浮点数:%f\n", 10.13); // 字符常量演示,字符要求使用英文单引号包含的内容,C/C++ 不推荐包含中文 printf("字符:%c\n", 'A'); printf("字符:%c\n", '1'); // 中文汉字占用字节都是 2 ~ 3 字节,字符常量无法保存完整的中文汉字,有警告 printf("字符:%c\n", '我'); // 有乱码 //字符串常量 printf("%s\n", "北国风光,千里冰封···"); printf("%s\n", "晋太元中,武陵人捕鱼为业···"); return 0; } 
3.3 字符特殊补充
3.3.1 字符和编码集

任何一个字符对于计算机而言都是一个【图片】,在计算机中使用一个表格,对每个图标进行编号处理,在使用字符数据过程中,计算机会根据对应的编号,选择对应的字符内容进行展示。

嵌入式开发中,常用的编码集 ASCII:美国信息标准化交互协会指定的编码集,包括所有的英文字符,标点符号和特殊字符串,同时要求任何一个国际流行的编码集,前 0 ~ 255 位置必须是 ASCII。 GBK:中国国标,包括中文简体字,全部少数民族文字。 UTF-8:万国码,包括中文简体字和其他国家文字。 BTG5:中国繁体字编码集,主要适用于中国香港,中国澳门,中国台湾省 

ASCII 重点知识点

  • 0 ~ 31 编码对应的字符是不可见字符,功能按键,例如 ESC,重点 nul 编码为 0 的字符
  • 英文大写字母的编码值是小于小写英文字母
  • 大写英文字母和小写英文字母之间非连续,中间有其他字符
  • 数字字符顺序为 ‘0’ ~ ‘9’
  • 开发中使用字符常量,请使用字符本身,不允许使用编码值
    在这里插入图片描述
    在这里插入图片描述

3.3.2 转义字符【了解】
将无意义字符,转换为特定含义字符 \n 回车 \t 制表符/tab \a 蜂鸣器 特定含义字符,转换无意义字符 \" 需要一个 " 字符 \' 需要一个 ’ 字符 \\ 需要一个 \ 字符 
3.3.3 一个来自 2015 年的面试题
请问 \40 是什么??? 1. \ 是一个转义字符标记 2. \ 之后要求的数据可以是八进制数据 3. 八进制数据可以省略标记 0 \40 ==> 八进制对应 040 字符 ==> sp 空格 【重点知识】 '\0' 表示编码集当中编号为 0 字符,为不可见字符,字符标记为 nul 
3.4 数据类型【重点】

开发中,根据当前数据情况,分门类别处理,选择不同的数据类型,更好管理操作数据,通过常量角度分析得到有以下数据类型

  • 整数 short int long
  • 浮点数 float double
  • 字符串【特殊类型】

整数:一般用于存储整数相关数据内容,支持负数和正数,同时可以选择当前数据非负数

数据类型 占用内存空间字节数 数据范围
short 2字节(16bit) -32768 ~ 32767
0 ~ 65535
int 4字节(32bit) -2^31 ~ 2^31 – 1
2^32 – 1
long 8字节(64bit) -2^63 ~ 2^63 – 1
2^64 – 1

int 类型占用内存字节数补充

  • 在 32 位机器及其以上占用内存空间字节数是 4 字节
  • 16位机器对应 2 个字节,8 位机器对应 1 个字节

long 类型占用内存字节数补充

  • 在 64 位机器及其以上占用内存空间字节数是 8 字节
  • 32 位机器对应 4 个字节

浮点数:用于存储小数数据,存在单精度和双精度情况,主要区别是数据存储范围和数据存储精度

数据类型 占用内存空间字节数 数据范围
float 4字节(32bit) ± 10 ^ 38
double 8字节(64bit) ± 10 ^ 308

float 单精度浮点类型 和 double 双精度浮点类型

  • float 数据存储范围小于 double
  • float 数据精度没有 double 高
  • 浮点数据精度情况在特定情况下无法满足开发需求,可能需要其他类型支持

字符类型:用于存储字符数据,但是对于中文的支持不友好

数据类型 占用内存空间字节数 数据范围
char 1字节(8bit) 对应 ASCII 数据范围
4. 变量【重点】
4.1 C/C++ 变量定义形式
数据类型 变量名 = 初始化数据 【注意】 开发要求,一行仅定义一个变量,并且进行初始化操作 数据类型: 1. 要求见名知意,推荐: 小驼峰命名法 studentName studentScore 下划线命名法 student_name student_score 2. 变量名在一定范围内唯一 3. 变量名是操作当前变量的关键名称 =: 赋值号,将赋值号右侧的数据,赋值给左侧的变量 右侧要求必须是一个变量,不可以是其他内容 初始化数据: 根据数据类型,目前的代码所需情况,原则合理合适的数据对当前变量进行初始化操作。 
4.2 变量定义案例
4.2.1 整型案例
#include <stdio.h> int main(int argc, char *argv[]) { /* 变量定义格式: 数据类型 变量名 = 初始化数据; */ // 当前定义的变量,变量数据类型为 short 类型,变量名为 num1 // 存储类型为 10 short num1 = 10; // 变量数据类型为 int 类型,变量名为 num3 // 存储数据为 200 int num2 = 200; //变量数据类型为 long 类型,变量名为 num3 // 存储数据为 1000 long num3 = 1000; printf("num1 = %d\n", num1); printf("num2 = %d\n", num2); printf("num3 = %d\n", num3); short num5 = 10000; print("num5 = %d\n", num5); // 03_整型变量定义案例.c:36:15: warning: overflow in implicit constant conversion [-Woverflow] // short num5 = ;i //  超出了 short 类型支持的数据范围 return 0; } 

在这里插入图片描述

4.2.2 浮点类型案例
#include <stdio.h> int main(int argc, char *argv[]) { // 数据类型 变量名 = 初始化数据; /* 定义一个 float 类型变量,变量名为 num1 初始化数据赋值为 3.14 【建议】 3.14 常量之后使用大写 F 明确告知编译器 当前 3.14 是一个 float 类型数据,默认情况下, 计算机为了保证数据的精度范围,所有的浮点数 常量默认数据类型为 double 类型 【严格遵守数据类型一致化原则】 */ float num1 = 3.14F; // 定义了一个 double 类型变量,变量名为 num2 // 初始化数据赋值为 3.14 double num2 = 3.14; printf("num1 = %f\n", num1); printf("num2 = %f\n", num2); return 0; } 

在这里插入图片描述

4.2.3 字符类型案例
#include <stdio.h> int main(int argc, char *argv[]) { //数据类型 变量名 = 初始化数据; // 使用字符常量给予字符变量进行赋值操作,需要使用字符本身 //不推荐使用编码值 char ch1 = 'A'; char ch2 = '1'; char ch3 = '中'; printf("ch1 = %c\n", ch1); printf("ch2 = %c\n", ch2); printf("ch3 = %c\n", ch3); return 0; } 

在这里插入图片描述

4.3 变量定义常见错误/问题总结
4.3.1 常量数据使用建议
  • 使用常量给予 float 类型变量赋值操作,建议采用大写 F 作为常量的结尾修饰
  • 使用常量给予 long 类型变量赋值操作,建议采用大写 L 作为常量的结尾修饰
float num1 = 3.5F; // 明确告知计算机,当前 3.5 是一个 float 类型 long num2 = 1000L; // 明确告知计算机,当前 1000 是一个 long 类型 // 原则: 严格遵守数据类型一致化 
4.3.2 变量未定义直接使用【常见】
  • 变量已定义,但是在后续的使用过程中,因为拼写错误导致的变量未定义。
  • 变量在使用之前尚未定义,从始至终未定义对应变量

在这里插入图片描述

4.3.3 野值问题【重点,一定要避免】

要求变量在定义之后,如果尚未赋值的情况下,不建议参与除赋值之外的其他操作。因为变量存储的数据内容尚未明确,C/C++ 中对应变量的数据称之为【野值】,无法确定数值。

建议变量定义操作时,直接进行必要的初始化操作,防止野值出现

4.3.4 重复定义问题【常见】

变量在一定范围内唯一,不可以重复定义,否则计算机无法对变量名称进行识别。

在这里插入图片描述

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/120288.html

(0)
上一篇 2025-10-30 18:33
下一篇 2025-10-30 19:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信