首页
网站统计
推荐
关于
Search
1
历史的面孔中蒋百里的形象
15 阅读
2
时间不够用?
13 阅读
3
历史的面孔中陈天华的形象
12 阅读
4
宝塔
11 阅读
5
欢迎使用 Typecho
9 阅读
默认分类
随笔
建站
科普
计算机语言及硬件开发
登录
Search
标签搜索
历史的面孔
书籍
C
梁启超
陈天华
蒋百里
宝塔
建站
生活感悟
学习
迟暮
累计撰写
9
篇文章
累计收到
2
条评论
首页
栏目
默认分类
随笔
建站
科普
计算机语言及硬件开发
页面
网站统计
推荐
关于
搜索到
1
篇与
的结果
2025-11-26
学习C语言第二天
今天学习了数据类型,变量,内存管理,数据类型占用大小及取值范围等。课程中的内容通俗易懂,目前下来都能明白。此外在整个学习流程中,有点缺乏方向了,后续需要了解整体学习内容及流程。以下是我学习的笔记,欢迎指出错误,轻喷,谢谢。//数据类型 /* 基本类型→字符型,整型(短整型,整型,长整型,长长整形),浮点型和布尔类型 枚举类型(enum) 空类型(void) 派生类型→指针类型,数组类型,结构体类型,共用体类型,函数类型 */ /* 字符型 char 有三种书写类型 char [signed] char 有符号 其中signed可以省略 unsigned char 无符号 其中unsigned必须有 */ /* 整型 short [signed] short unsigned short int [signed] int unsigned int long [signed] long unsigned long long long [signed] long long unsigned long long */ /* 浮点型 float 单精度 double 双进度 long doubele */ /* 布尔型 只有0表示假 */ #include <stdio.h> #include <stdbool.h> //int main() //{ //char a = 'a'; //unsigned char ch2 = 'b'; //short sh = 10; //int i = 20; //在这里博哥写的定义a了,会报错,类型不一样也会报错 //long la = 100; //long long lla = 1000; //float f = 12.5; //double d = 12.5; //long double ld = 12.5; //printf("%d\n%d\n%d\n%d", 'a', ch2, i, 'i'); //想要看输出是否正确可以加一个打印,记住是字符 //这里打印中,输出的是不一样的,还需注意,此外 单行注释快捷键, 1选中 2ctrl 3/ // _Bool flg = true; //其中_Bool中B必须大写,假为false, // if (flg) // { // printf("this is true!"); // } // return 0; //} //有了数据类型后,我们如何使用数据类型? //通过类型我们可以定义变量,而变量中可以存储数据 /* 变量 data_type name 数据类型 变量名 */ /* 变量命名的一般规则 只能由字母,数字和下划线组成 不能由数字开头 长度不能超过63字符 区分大小写 不能用关键字 */ /* 变量的分类 全局变量 在大括号{}外定义的变量 局部变量 在大括号{}内定义的变量 */ /* 变量既然是数据,那保存在哪里了,保存在内存中 为什么划分内存,因为存数据和取数据效率高,太乱了就不好找 初步分为三个区 栈区:局部变量 堆区:内存管理等 静态区:全局变量 */ int local = 10; //全局变量 int gloable = 100; //全局变量 int main() { int local = 20; //局部变量 printf("%d\n", local); //变量名一样,先读取局部变量 printf("%d\n", gloable); printf("%zd\n", sizeof(char)); //1个字节 sizeof返回值是size_t类型,期望通过%zd输出 printf("%zd\n", sizeof(_Bool)); //1个字节 当然%d使用也可以 printf("%zd\n", sizeof(short)); //2个字节 printf("%zd\n", sizeof(int)); //4个字节 printf("%zd\n", sizeof(long)); //4个字节 printf("%zd\n", sizeof(long long)); //8个字节 printf("%zd\n", sizeof(float)); //4个字节 printf("%zd\n", sizeof(double)); //8个字节 printf("%zd\n", sizeof(long double)); //8个字节 return 0; } /* 数据类型占用内存大小以及取值范围 数据存储容量或者数据传输速率的基本单位:bit,byte,kb,mb,gb,tb,pb 8 bit = 1 byte 1024 byte = 1 kb 其余的进率都是1024 sizeof关键字可以计算 某个类型或者表达式的长度,单位是字节。 在不同平台下字节大小是不一样的,目前都是x64平台下 */ // 前缀为[signed]的是有符号类型,只能表示负数,0,正数 范围是-128-127 // signed int a = 'a' 等同于 // int a = 'a' // 8bit分为八个位置,第一位是符号位,0是正数,1是负数 // 负数在内存中怎么储存? 源码 =》(源码符号位不变,其它位取反)反码 =》(反码加一) 补码 // -1的源码 1000 0001 反码1111 1110 补码1111 1111 // -2的源码 1000 0010 反码1111 1101 补码1111 1110 // 128的源码 1000 0000 反码0111 1111 补码1000 0000 128比较特殊 // // 前缀为unsigned的为无符号类型只能表示 0,正数 范围是0-255
2025年11月26日
3 阅读
1 评论
0 点赞