- 博客(11)
- 收藏
- 关注
原创 内存对齐(与结构体相关的引例)
定义在结构中,编译器为结构的每个成员按其自身的自然对界条件分配空间。各个成员按照它们被声明的顺序在内存中顺序存储,第一个成员的地址和整个结构的地址相同。结构体成员存放的地址要能整除该成员本身的大小2.前面所有成员的大小相加应该是当前成员大小的倍数3.整个结构体的大小应该是该结构体中单个最大成员大小的倍数struct A{char a;//1+3int b;//4}//8个...
2019-10-31 23:08:40 91
原创 移动数据
将长度为n的数组arr,后面m个数组移到最前面#include<stdio.h>#include<stdlib.h>void Move(int *arr,int n,int m){ if(arr==NULL||n<=0||n<m) { return ; } int *brr=(int *)malloc(m*sizeof(int)); int...
2019-10-26 12:27:00 154
原创 汉诺塔问题
#include<stdio.h>void Move(char x,char y){ int g_count=0; printf("%c->%c\n",x,y); g_count++;}void Hanoi(int n,char a,char b,char c){ if(n==1) { Move(a...
2019-09-23 20:08:36 334
原创 动态内存
使用动态内存的原因根据变量定义数组长度栈:1M,空间小,操作系统管理堆(动态内存分配的空间):2G,程序员管理,用完须释放。如果动态内存用完不释放,即会造成内存泄漏。泄漏的内存自动还原的情况:(1)设备重启(2)程序(程序)退出申请内存:malloc将每个元素置为零:calloc内存大小调整:realloc释放内存:free例:#include<stdio.h>...
2019-09-23 20:02:52 116
原创 魔方阵
#include<stdio.h>#include<assert.h>void MagicSquare(){ #define ROW 5//魔方阵行数 int arr[ROW][ROW]={0};//必须初始化为0 int preROW;//前一个数据存放的行 int preCol;//前一个数据存放的列 int i; ...
2019-09-18 20:24:06 171
原创 结构体大小
内存对齐:每个数据存放的内存地址,能整除数据本身的大小(快速)1.前面所有成员的字节数能整除当前成员大小.解决单个变量2.结构体的大小必须能整除单个最大类型的大小.解决数组typedef struct A// typedef用于定义数据类型{ flaot a;//4 int b;//4}A;//8struct B{ char a;//1+3 int b;//4...
2019-05-27 20:37:52 96
原创 递归
递归:自己调用自己例:求1到n的和#include<stdio.h>int Sum(){ if(n==1 || n==0) { return n; } else { return Sum(n-1)+n; }}求阶乘#include<stdio.h>int Fac(){...
2019-05-27 19:50:59 101
原创 打印杨辉三角(前10行)
#include<stdio.h>void PascalTriangle(){ #define ROW 10 int i; int j; for(i=0;i<ROW;i++) { for(j=0;j<ROW;j++) { if( 0==j || i==j ) { ...
2019-05-18 19:34:48 2508
原创 字符串拷贝
字符串拷贝void Mystrcpy2(char *des,char *str)//字符串拷贝{ int i; for(i=0;*(str+i)!='\0';i++)//*(str+i)等价于str[i];[]自带解引用 { *(des+i)=*(str+i); } *(des+i)='\0';}int...
2019-05-05 20:34:23 155
原创 使用指针交换数据
#include<stdio.h>解引用`int Swap(int *p1,int *p2){ int *tmp; tmp=p1; p1=p2; p2=tmp;}没有解引用(地址交换,地址里的值未交换)void Swap(int*p,int*p2){ int *tmp;//(未初始化)野指针,悬挂指针(无权访问) *tmp=*p;//*...
2019-05-05 20:32:18 1276
原创 数字处理问题
#include<stdio.h>#include<math.h>int GetFigures(int n){ int count=0; if(n==0){ return 1; }while(n!=0) { n/=10;count++;}return count;}void PrintfReverse(int n)//逆序输出{ do { ...
2019-04-16 22:49:01 198
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人