- 博客(14)
- 收藏
- 关注
转载 4.2、字符串 与 整数 转换
前言参考了Genven_Liang这位博主的链接如下:https://blog.csdn.net/nanfeibuyi/article/details/808114981、为什么要转换char 我们一般用来定义字符a, b, c之类的,但是你在内存里面不能直接存字母啊,还是要转换为数字进行存储,也就是我们对应的ASCII码比如,字符a对应 97,字符 b 对应 98但是我们一般想要的不是这种,比如车牌识别,我识别得到一个字符串”123456“,怎么得到数字123456,这是 char 与 int
2022-04-02 16:59:38 378
原创 两数交换的四种方法
#前言参考狄泰软件唐老师#include <stdio.h>void swap1(int* a, int* b){ int t = 0; t = *a; *a = *b; *b = t;}#define swap2(a, b) \{ \ int t = a; \ a = b; \ b = t; \}#define swap3(a, b) \{ \ a = a + b; \ b = a - b; \ a = a - b;
2022-04-02 16:44:46 127
原创 12、自增(++) 与 自减 ( - -)、
前言狄泰软件唐老师的个人学习笔记参考了C语言中文网,链接如下;http://c.biancheng.net/cpp/html/3097.html1、++ 与 - -前置- 变量自增(自减)- 取值后置- 取值- 变量自增(自减)实验:说明前置与后置的区别#include <stdio.h>int main(){ int a = 10, b = 20, c = 30, d = 40; int a1 = ++a, b1 = b++, c1 = --c,
2022-04-01 21:15:36 990
原创 11、逻辑运算符 与 位运算符
前言狄泰软件唐老师的个人学习笔记1、逻辑运算符|| 从左往右开始计算- 当遇到为 真 的条件时停止计算,整个表达式为真- 所有表达式为假时,才为假&& 从左到右开始计算- 当遇到为 假 的条件时停止计算,整个表达式为假- 所有表达式为真时表达式才为真实验:验证逻辑运算符的 短路规则#include <stdio.h>int main(){ int i=0, j=0, k=0; ++i || ++j && ++k; print
2022-04-01 20:43:21 255
原创 10、转义符、单引号、双引号
前言狄泰软件唐老师的个人学习笔记1、转义符当反斜杠作为转义字符使用时,必须出现在单引号或双引号之间,直接用的那是接续符实验:转义字符的使用#include <stdio.h>int main(){ char enter = '\n'; char* p = "\141\t\x62";// \141表示某个字符ASCII码的八进制,\t是tab键,\x62是十六进制表示一个字符的ASCII printf("%c\n", enter); printf("%s\n",
2022-04-01 19:22:46 10814
转载 9、结构体内存对齐
一、为什么存在内存对齐 1、平台原因: 不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。 2、性能原因: 数据结构(尤其是栈)应该尽可能地在自然边界上对齐。原因在于,为了访问未对齐的内存,处理器需要做两次内存访问;而对齐的内存访问仅需要一次访问。 二、对齐规则 1、第一个成员在与结构体偏移量为0的地址处。 2、其他成员变量要对齐到某个数字(对齐数)的整数倍的地址处 对齐数 = 编译...
2022-04-01 18:51:09 64
原创 8、柔性数组
前言狄泰软件唐老师的个人学习笔记1、柔性数组柔性数组:结构体的最后一个元素可以是大小未知的数组(柔性数组),且不占用存储空间实验:柔性数组不占用空间#include <stdio.h>struct ST{ int len; int array[];};int main(){ printf("%d\n", sizeof(struct ST)); //4, 结尾的柔性数组不占用空间}柔性数组的用法:前期不写大小,后期通过malloc函数在加上数组大小实验:柔性
2022-04-01 16:31:15 95
原创 7、struct(结构体的定义赋值)
前言狄泰软件唐老师的个人学习笔记1、结构体定义与赋值1.1、定义第一种定义:先定义结构体类型,在定义结构体变量struct sensors{ float temperstor; char alcohol; char CO;};//struct + 变量类型名 + 变量名struct sensors sen;第二种定义:定义结构体类型的同时定义结构体变量struct sensors{ float temperstor; char alcohol;
2022-04-01 16:30:59 2039 1
原创 6、void、const、volatile
前言狄泰软件唐老师的个人学习笔记1、voidvoid 一般我们用来修饰函数返回值和函数参数函数没有返回值,将其声明为void函数没有参数,声明参数为void实验:函数的返回值和参数不加void,不是说明无,而是什么都可以#include <stdio.h>f(){}int main(){ int i = f(1,2,3); return 0;}void是一种类型,但是不能修饰变量1.1、void指针的意义C语言规定只有相同类型的指针才可以
2022-04-01 15:38:33 1257
原创 5、变量属性(auto、register、static、extern)
前言狄泰软件唐老师的个人学习笔记1、auto关键字auto即c语言中局部变量的默认属性auto表明被修饰的变量存在于栈上2、register关键字register关键字是将局部变量存储于 寄存器 中,而不是内存变量很多,寄存器是有限的,因此,register是请求寄存器变量,但不一定请求成功不能用 & 运算符获取 register 变量的地址(&获取的是内存地址,而不是寄存器地址)实验:验证不能用 & 获取 register 的地址#include <
2022-03-31 15:43:28 878
原创 4.1、数据 强制类型转换 与 隐式类型转换
前言狄泰软件唐老师的个人学习笔记数据类型转换分为强制类型转换隐式类型转换1、强制类型转换:转换后的结果:目标类型能够容纳目标值,结果不变目标类型不能容纳目标值,结果将产生截断实验:#include <stdio.h>struct TS{ int i; int j;}ts;int main(){ short s = 0x1122; //short两个字节 char c = (char)s; int i = (int)s; int j =
2022-03-31 14:48:11 1423
原创 3、浮点数
前言狄泰软件唐老师的个人学习笔记1、浮点数浮点数在内存的存储方式:符号位,指数,尾数类型符号位指数尾数float1位(31)8位(23~30)23位(0~22)double1位(63)11位(52~62)52位(0~51)float 和 double 的表示方法相同,只是数值范围和精度不同1.1浮点数的转换:将浮点数转换为二进制用科学计数法表示二进制浮点数计算指数偏移后的值,偏移量与类型有关,float是127,double是1023举例
2022-03-31 14:35:12 300
原创 2、有符号数与无符号数
1、有符号数有符号数中数据类型的最高位是数据的符号位最高位为1,表明这个数为负数最高位为0,表明这个数为正数实验:检验数据的最高位是否是 符号位#include <stdio.h>int main(){ char i = 5; short a = 2; int b = -2 ; printf("%d\n", ((i&0x80) != 0 ) ); //0, printf("%d\n", ((a&0x8000) != 0 ) ); //0 pr
2022-03-30 16:32:20 878
原创 1、数据类型、typedef
数据类型、typedef一、数据类型数据类型:给一个固定大小的内存起一个别名,(创建变量的模子)变量:实际连续存储空间的别名程序中通过变量来申请并命名存储空间,通过变量的名字可以使用存储空间如上,p是指针变量,内部存放的变量是地址(3004),而指针变量也有地址(3100)2、typedef数据类型重定义,将数据类型换个名typedef int INT32;typedef unsigned char BYTE;typedef struct _tag_ts{ BYTE b1; BY
2022-03-30 16:16:08 187
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人