随笔分类 - C语言
摘要:形式 #define 宏名 字符串 (1)宏名是作为标识符,命名规则与变量相同。字符串则可以是数字、表达式、语句、函数等。 (2)字符串为简单的字符序列,不同于C语言中的字符串,不需要加双引号。 (3)程序中反复使用的表达式就可以使用宏定义 注意 (1)实质:只替换,不计算 (2)用宏名来表示一个字
阅读全文
摘要:什么是C语言? C语言是一门通用型编程语言,广泛用于底层开发。我们熟知的操作系统,如windows、Linux、Mac,这些都有C语言的身影。 由来 二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制 定了一套完整的美国国家标准语 法,称为ANSI C,作为C语言
阅读全文
摘要:C语言 旋转字符串 思路: 1.循环需要旋转几次 2.保存处于第一个的字符 3.再将后面的所有字符往前挪动一位 4.再把处于第一位的字符放在末尾 //字符串旋转 第一种解法 (左旋转/右旋转) void str_rotate(char* arr,int k) { int i = 0; char tm
阅读全文
摘要:C语言 模拟实现字符串操作的库函数 求字符串长度 strlen 思路 1.如果碰到\0就代表字符串已经到了末尾 size_t my_strlen(const char* str) { assert(str!=NULL); //指针版本 /*const char* start = str; const
阅读全文
摘要:某些函数的安全性报错 ! 方法2:在程序最前面加,#pragma warning(disable:4996);关闭4996警告 若要关闭针对特定代码行的警告,请使用 warning(suppress : 4996) 方法3:strcat改为strncat或者strcat_s; 方法4:在程序最前面加
阅读全文
摘要:sizeof和strlen精讲 简介 sizeof操作符,计算变量或类型大小为几个字节。如果是计算字符串的长度时, 会将\0 计算在内,因为\0是占个内存位置,视为结束字符。 // 如果参数为指针的话 永远都是4/8个字节 根据电脑是32位/64位系统决定 // 例如:32位操作系统 这32位为32
阅读全文
摘要:1.原因 数组不能直接给数组赋值 指针不能直接给数组赋值 2.解决办法 char a[] = {'h','e','l','l','o'}; char b[5]; char* p = NULL; //错误情况 char c[5] = a; // 不可直接将数组赋值给数组 char d[5] = p;
阅读全文
摘要:结构体 声明与初始化 结构体成员数据类型可以是数组,常量,字符串,指针,或其它结构体类型 //声明结构体类型 struct tag_name { 数据类型 变量名1; 数据类型 变量名2; }var-list; //**不完全声明(匿名声明)** //局限性:只能用一次 //必须嵌套声明 struc
阅读全文
摘要:四舍五入的小细节 计算机的四舍五入与我们数学学的还是有点区别,下面开始讲解吧 四舍五入的规则: 如果需要约位的数<=4,舍去不进位如果需要约位的数>=6,舍6进1如果需要约位的数=5,分两种情况(后面有无有效数字) 如果后面无有效数字 1.需要约位的数前面是偶数,舍5不进(0也算偶数) 2.需要约位
阅读全文
摘要:预处理 这个阶段需要处理三件事情 1.#define定义的标识符替换 2.文件包含替换 3.去除注释 常见的预定义符号 作用可以用来记录日志信息 以方便找到检查点 __FILE__:当前源文件的路径 __LINE__:当前行行号 __DATE__:文件被编译的日期 __TIME__:文件被编译的时间
阅读全文
摘要:求结构体总大小(字节数)的规则 结构体第一个成员在结构体变量偏移量从0开始地址数结构体其余成员对齐数的整数倍的地址数对齐数:默认的对齐数与结构体成员大小的较小值 vs的对齐数为8 / linux没有对齐数概念结构体总大小(字节数)为最大对齐数(结构体成员的字节数)的整数倍结构体嵌套的对齐数为整个结构
阅读全文
摘要:先用高字节 在用低字节 整形存储 都是以补码存储 不同位数处理器 可处理的位数不同 决定了寄存器宽度是否大于一个字节 就会有多个字节如何安排的问题 就出现了大小端 由于每个数据类型的字节数不同 浮点数存储 由于小数位不知如何存储 国际标准IEEE754 规定任何一个二进制浮点数可以表示为下面形式 (
阅读全文
摘要:核心都是将字符串在传参时,由于形参int的限制转换为了每个字符对应的ASCII码 然后进行判断和转换 字符的判断分类函数 返回值 是该分类返回非0的正数,否则返回0 //字符分类函数 接收字符的ASCLL char ch = '10'; //isdight 如果是数字返回非0的值 不是数字字符返回0
阅读全文
摘要:科学记数法是一种记数的方法。把一个数表示成a与10的n次幂相乘的形式(1≤|a|<10,a不为分数形式,n为整数),这种记数法叫做科学记数法。当我们要标记或运算某个较大或较小且位数较多时,用科学记数法免去浪费很多空间和时间。 n必须为整数,不可以为浮点数和小数
阅读全文
摘要:此时的printf打印的究竟是什么呢,没有参数,估计也很少有人碰到过这种问题,碰到了也是一脸雾水,没有了第二个参数,究竟打印什么也只能碰壁去试试 接下来有小胡同学为大家解释下为什么吧!!! 此时请看下输出 为什么结果会是11呢?a的值好像就是11,那我们修改下a的值是否会有变化呢,试试吧,总会有意想
阅读全文