自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 略谈typedef

假如定义十个甚至更多这样类型的变量:unsigned long long int a;不停地写变量类型是一件很麻烦的事,极大地降低工作效率,typedef的存在就是解决这个问题!顾名思义,typedef就是:类型定义,给类型起别名。假如要定义一个无符号长长整型类型,用uint64来当做这个类型的别名,这时uint64就是这个类型本身,只需这样做:typedef unsigned long long...

2018-04-29 12:42:35 193

原创 魔方阵(奇数阶、单偶数阶、双偶数阶)

#include <stdio.h>#include <assert.h>#include <stdlib.h>int **Magic1(int n) //奇数阶魔方阵{ assert(n%2 != 0); int **arr = (int **)malloc(sizeof(int *)*n); //创建二维数组存放魔方阵 for(...

2018-04-26 20:13:28 6706

原创 free()崩溃原因总结

       在使用动态内存分配malloc()后,若不及时释放内存free(),会造成内存泄漏;我总结了在释放时经常出现错误的原因,频率由高到低排序。(一) 越界、漏写sizeof()、realloc()第二个参数写错int main(){ int *arr=(int *)malloc(10*sizeof(int)); //分配10个单位的连续块,每个单位4个字节 //for(int ...

2018-04-22 23:37:58 11025

原创 递归详解

用如下程序来解释递归:#include <stdio.h>int Sum(int n) //从1~n相加{ return n == 1 ? 1:Sum(n-1)+n;}int main(){ printf("%d\n",Sum(4)); return 0;}程序从main开始执行,当执行Sum(4)时的情况如下图所示:Sum(4)执行到最底下层虚线处,即re...

2018-04-19 22:56:13 199

原创 strlen.strcpy.strcmp.stratoi.stritoa的自己实现

#include <stdio.h>#include <string.h>//1.字符串连接char * Mystrcpy(char *des,const char *src,char *p){ while(*p++ = *src++); //指针p指向des的'\0'位置,从此处开始复制,即实现了字符串连接 return des;}//2.字...

2018-04-16 23:02:08 139

原创 Const(定义常变量)的四个重要性质

1.将变量变成只读 定义一个变量a,并赋初值10,变量a既可以被重新赋值,又可以被读取:int a= 10;a = 20;int b = a;这时变量a被称为左值,它具有可以被赋值和读取两种属性倘若定义常变量a,试着重新赋值和读取:可以看到编译器报错,const将变量a变成了右值,即只可被读取,不能写入(重新赋值)2. 数据类型对于const而言是透明的观察1,const写在int后面,那么...

2018-04-16 22:43:40 3254

原创 字符串常量高频错误

当定义一个字符串常量:char *arr = "aecd";发现”aecd”的’b’错写成了’e’,当试图去更改的时候,程序会崩溃:char *arr = "aecd";arr[1] = 'b';这是因为字符串常量存储在常量区(静态存储区),这部分区域是不允许修改的,而指针arr指向的是”aecd”的地址,并不是这个值,如下所示:字符数组的值可以修改,例如:char arr[] = "aecd...

2018-04-16 21:40:08 321

原创 假设在n进制下,下面的等式成立,567*456 = 150216,n的值是()

问题:假设在n进制下,下面的等式成立,567*456 = 150216,n的值是()          A.9     B.10     C.12       D.18 1. 在六进制下有:15*4=112.    把这个等式转换为十进制:(1*6+ 5*6^0) *(4*6^0)=(1*6^2 + 1*6 + 2*6^0)2. 同理,对567*456=150216做如上变换:    (5*n^2...

2018-04-13 12:22:31 420

原创 C语言:指针学习(二)

主函数调用子函数,子函数的改变要想影响影响主函数,必须:    1:传指针    2:解引用以下有三个案例是指针学习中最容易出现的问题(前提:交换两个变量a、b的值)(一)第一种情况是没有传指针,也没有解引用。#include <stdio.h>void Swap_error1(int a,int b){ int tmp; tmp = a; a = b; b = tmp;...

2018-04-02 23:15:12 543 1

原创 C语言:指针学习(一)

 C语言这门课程里,初次接触到指针这一章节时,对于指针的理解我很模糊,所以就通过程序和调试来加深对指针的理解。Int a = 10;Int *p = &a;1.为了理解p和*p到底代表了什么,调试得到如下结果:可以看到,指针变量p的值和变量a的地址相同,*p等于变量a的值。也就是说,指针等同于一个地址,解引用(*p)为该地址上内存单元存储的的值(a)。在此基础上,又有两个新问题:(1)解...

2018-04-02 17:57:26 3695 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除