ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

c语言课堂笔记 twelve november

2021-11-14 18:59:35  阅读:182  来源: 互联网

标签:twelve 变量 sizeof int 数据类型 november 全局变量 课堂 字节


数据类型分类
基本数据类型(内置。编译器自带的类型) 复合数据类型(多个内置类型组成的新类型):数组、结构体(struct)、union、enum
基本类型 int 短 short ⻓ long 整型。long long char float double Void类型:void*(万能指针):多态
二 定义变量 (注意事项:编码规范)
1 变量的可读性 形容词_名词 而且是小写 int n; int sum_result; int a,b,c,d;(这种不太好)
( int quihe )严令禁止 不能用中文拼音 不会用有道词典 一定要用英文
2 循环变量 int i ; int k; 循环变量可以用单个字母 注释会影响编写⻛格 尽量只解释难的
三 基本数据类型需掌握知识点
1 各种数据类型的字节⻓度 (变量占用内存的大小) int num = 5; 注:计算机表示内存大小的单位 : 8bit位 = 1字节、16bit=2个字节=半字、32bit=4个字节=字、双 字、1024KB = 1MB、G、T
如何测量数据类型的大小?用sizeof sizeof 是一个运算符 sizeof(变量名)sizeof(数据类型) int len = sizeof(num);
Size of 计算数据类型和变量的内存大小
int len = sizeof(int);可以测数据类型的大小
Sizeof是一个运算符 不是一个函数
int len = sizeof num; 测量变量时这样写 测量类型是必须加上括号。 Int len = sizeof (int);
Unsigned long Len %ld
指针的⻓度:都是8个字节 这个类型都比较特殊 指针类型保存地址 操作系统中地址的⻓度是固定 ⻓度 由操作系统的位数决定 64位是8个字节 32位系统是four字节
数组的⻓度 :数组的⻓度 * 元素类型的⻓度
字符串的⻓度: strlen(char *src); 不统计字符串的/0,到/0暂停 Strlen统计字符串中字符的个数
2 各种数据类型的取值范围 ?
char a[1000];
for (I=0; I<1000;i++) {
a[I]= -1 -I;
}
printf(“strlen(a) = %ld\n”, strlen(a));
Return 0;
}
计算机三种吗 原码 反码 补码。计算机里保存的是补吗。

正数: 源吗 = 补吗
负数 :补吗 = 源吗取反+1 原吗 = 补吗取反+1
计算机中为什么会提出补吗存储 ?+0 -0
0 000 0000=+0 1 000 0000=-0 解决 +0 -0问题
2取反 0000 0010 1111 1101 0000 0010
0000 0010 1111 1101
000 0010
-1.25二进制
-128、
ch = ch - 1 会存在溢出 因为结果会写到之前的内存里 1 000 000
1 111 1111
0 111 1111 127
printf(“%d\n”,ch+1); 不存在溢出 结果不会回写到内存里 计算机是以补码形式保存数据 为了解决正负0问题
注 大数计算 200302000000030003020302300*203020302220020020200202 解决溢出问题
3、 signed vs unsigned
typedef关键字 给数据类型重命名
typedef unsigned int u_int
1、解决 signed 和 unsigned带来的代码移植问题 (引入typedef关键字 给数据类型 重命名 ) 2、提高了代码的可读性
3、提高了编码效率
typedef vs 宏定义
Four、 变量和常量
1 全局变量 和 局部变量:
变量的三大特点 : 字节⻓度 、生命周期&作用域、存储区域

2 作用域 可⻅范围
局部变量:在函数体里定义的变量 —所在函数 (出了函数不可⻅) 全局变量:在函数体外定义的变量-整个全局?(需要用extern外部声明)
extern
3生命周期:所占内存空间的分配-释放的过程
局部变量 所在的函数体执行时 分配空间 执行结束 释放空间 全局变量:c语言执行的第一句话是全局变量 所在程序执行时 分配空间 执行结束 释放空间 4、存储区域:
局部变量 :存储在栈空间 全局变量:存储在数据段
物理内存属于稀缺资源 写实复制 用的时候 写入和提取 只有修改时才回写 mmu 虚拟内存到物理内存的映射
1G给 内核 3G给用户 栈空间(局部变量 函数形参 自动变量) (未初始化回为随机值) gcc 4.0以上会初始化为0。以下的会初始化为垃圾值
堆空间
(malloc ralloc calloc分配的空间) 特点 先进先出。 2 用户管理
数据段 (bss:为初始化的全局变量 or:常量 静态数据区:static修饰静态变量 初始化的全局变 量。)(全局变量未定义的量初始化会为0)
代码段
栈空间的特点 1先进后出 2系统管理
extern int add(int a) 函数声明。不分配内存空间 可声明多次
函数定义 分配内存空间 定义多次会报错

标签:twelve,变量,sizeof,int,数据类型,november,全局变量,课堂,字节
来源: https://blog.csdn.net/m0_63543767/article/details/121321447

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有