C语言
文章平均质量分 54
xzengwei1313
懦夫畏死终须死,志士求仁几得仁!
展开
-
关于C语言中内存分配问题(malloc函数)
malloc函数的原型:(void *)malloc(int size) malloc函数的返回值是一个void类型的指针,参数为int类型的数据,即申请分配的内存大小,单位是字节。内存分配成功之后,malloc函数返回这块内存的首地址,你需要一个指针来接受这个地址。但是由于函数的返回值是void *类型,所以必须强制转换成你所接收的类型。也就是说这块内存将来要用来存储什么类型的数据,比如...转载 2018-08-04 20:44:38 · 5051 阅读 · 0 评论 -
C-高精度除法
直接贴喽#include<stdio.h> #include<string.h> intlen1,len2; chars1[905],s2[905]; intre[905]; voidsub() { int i=0,j; while(1) { if(s...原创 2017-03-22 16:46:14 · 592 阅读 · 0 评论 -
C位运算,& | ^,异或运算交换变量的错误性原因
1.&与运算(只有1&1才为1,其他全为0)应用:可以实现指定位清零;应用:取出给出值的指定位;2.|或运算(只有0|0才为0,其他全为1)应用:结合|和&实现大小写字母转换?3.^异或(或者XOR)运算符(相同为0不同为1,支持逆运算,常用于加密算法)应用:特定位翻转:与0异或不变,与1异或则翻转。比如,使01111010前四位翻转,则跟...原创 2019-03-21 17:21:55 · 1683 阅读 · 0 评论 -
C语言实现库函数memset
首先,memset函数来自于C语言的库文件函数 #inlcude<strings.h>,void *memset (void *dest, int n, unsigned int len);作用:将目标地址dest开始的连续整数个字节长度len的内容全部设置为指定的内容n。代码实现:void *memset(void *dest,int n,unsigned int len){...原创 2019-03-27 15:28:49 · 1009 阅读 · 1 评论 -
C语言 数字、字符串相互转换
1.将一个数字字符转换成数字:char ch='3';//'3'的ascii值是51int a;a=ch-'0'; //'0'的ascii值是48printf("%d",a);输出结果:32.将单个整型数字转换成字符:int a=6;char ch;ch=a+'0';//或者ch=a+48; '0'的ascii值是48printf("%c",ch);输出结果...原创 2019-04-07 12:03:17 · 1524 阅读 · 0 评论 -
type* const p与 typer const * p和 const type * p的区别
1.概念char*constp:p为指向字符变量的指针,地址不变,地址内容可变constchar*p:p为指向字符变量的指针,地址可变,地址内容不变char const *p:p为指向字符变量的指针,地址可变,地址内容不变, 与const char *p等价2.进一步理解int main(){ char ch[]="hello world!"; ...原创 2019-03-28 15:37:39 · 792 阅读 · 0 评论 -
C结构体内存对齐细节
内存对齐的细节和编译器实现有关,一般有三个原则:1. 结构体变量的首地址能够被其最宽基本类型成员的大小所整除;2. 结构体每个成员相对于结构体首地址的偏移量(offset)都是成员大小的整数倍,如果有需要,编译器会在成员之间加上填充字节;3. 结构体的总大小为结构体中最宽基本类型成员大小的整数倍,如果有需要,编译器会在最末一个成员之后加上填充字节。ex :struct st...原创 2019-06-19 13:09:10 · 172 阅读 · 0 评论