- 博客(14)
- 收藏
- 关注
原创 new和malloc的区别
malloc函数:动态内存分配原型:extern void* malloc(unsigned int num_bytes);void*malloc(intsize)说明:malloc向系统申请分配指定size个字节的内存空间,返回类型是void*类型。void*表示未确定类型的指针。C,C++规定,void*类型可以强制转换为任何其它类型的指针。备注:vo...
2019-11-14 00:03:31 132
原创 C++的四种强制类型转换
1.const_cast 用于强制去除不能被修改的常量属性,即去掉类型的const和volatile属性。去除常量性的对象必须为指针或引用。用法:const_cast<type_id>(expression)const int a = 10;int* p = const_cast<int*>(&a);最终转换的类型放在<>...
2019-11-13 23:01:54 186
原创 文件
1、数据的两种存放形式文本文件二进制文件2、存放位置一般保存在磁盘(外存):硬盘①机械硬盘:价格便宜(大约0.3元/G),可以做到大容量,易损,速度慢 ②固态硬盘:价格贵(1.8元/G),速度快内存:比硬盘速度快,但是断电后内存里的内容全部丢失(推荐三星的内存和固态...
2019-03-17 14:17:56 238
原创 struct内存对齐
在学习结构体过程中,遇到了内存对齐问题,所以我总结了一下这个知识点,供大家参考:内存对齐:各种数据存放的地址要能够整除该数据本身的字节数char可存放在任意地址,short存放在能被2整除的地址,int存放在能被4整除的地址······以此类推。内存对齐的规则:1、先将每个成员的字节数写出,然后从第二个成员开始,将前面成员的总字节数补齐成当前字节数的倍数2、结构体的总大小,一定要能整...
2019-03-14 16:50:52 332
原创 魔方阵
所谓“n-魔方阵”,指的是使用1〜n2共n2个自然数排列成一个n×n的方阵,其中n为奇数;该方阵的每行、每列及对角线元素之和都相等,并为一个只与n有关的常数,该常数为n×(n2+1)/2。假定阵列的行列下标都从0开始,则魔方阵的生成方法为:在第0行中间置1,对从2开始的其余n2-1个数依次按下列规则存放:(1) 假定当前数的下标为(i,j),则下一个数的放置位置为当前位置...
2019-03-04 22:24:31 603 1
原创 动态内存分配
动态内存分配的特点:1、不需要预先分配存储空间;2、分配的空间可以根据程序的需要扩大和缩小。要实现根据程序的需要动态分配存储空间,需要用到malloc、calloc、realloc、free函数。各个函数有特定的功能:malloc函数:申请内存calloc函数:初始化为0realloc函数:修改内存大小(扩大,缩小)free函数:释放内存,内存泄漏由一个例子来解...
2019-03-03 22:42:54 156
原创 数组的数据类型判断
首先了解一下几个特殊的名词:int (*x)[4]; 指向数组的指针,简称 数组指针;int *x[4]; 保存指针的数组,简称 指针数组;int *f(); 返回值为指针的函数,简称 指针函数;int (*f)(); 指向函数的指针;简称 函数指针。接下来对一维数组和二维数组的数据类型进行比较:int arr[4]; ...
2019-03-03 21:58:40 764
原创 const的使用
const的作用:定义常变量,不允许修改其值。例如:int const p = 10;如果再给p赋值,p = 20,它是error ; int const p1;也是error ;因为它没有初始化。const的使用如下:1、基本的数据类型对于const是透明的。int const ca = 0; const int cb = 0;ca和cb是等价的。const放在int的左...
2019-03-01 23:00:18 309
原创 指针的应用——数组逆置
#include<stdio.h>void Reverse(int *arr,int len){ int tmp; for(int i = 0;i<len/2;i++) { tmp = arr[i]; arr[[i] = arr[len-i-1]; arr[len-i-1] = tmp;...
2019-02-23 21:24:56 1720
原创 指针的算术运算(类比日期)
首先了解一下指针的大小:在32位(X86)平台是4字节,在64位(X64)平台是8字节。指针的加法有三种可能:1、指针加1,加一个字节(考试常用); 2、指针加1,加一个单元格(常用); 3、指针加1,加整个数组(没...
2019-02-23 21:16:40 169
原创 指针的应用——参数传递
在C语言中,实参和形参之间的数据传输是单向的,实参可以影响形参,而形参不能影响实参。指针变量作为参数也不例外,但是可以改变实参指针变量所指向的变量的值。#include<stdio.h>void Swap_err1(int a,int b){ int tmp; tmp = a; a = b; b = tmp;}void S...
2019-02-22 23:24:47 688
原创 进制转换
假设在n进制下,下面的等式成立,567*456=150216,n的值是()A、9 B、10 C、12 D、18第一步:将等式两边进行n进制的转换(5n^2+6n+7)*(4n^2+5n+6)=20n^4+25n^3+30n^2+24n^3+30n^2+36n+28n^2+35n+42=20n^4+49n^3+88n^2...
2019-02-22 22:35:52 163
原创 数组越界
所谓数组越界,简单地讲就是指数组下标变量的取值超过了初始定义时的大小,导致对数组元素的访问出现在数组的范围之外。程序中经常会遇到数组越界的情况,表现形式一般为读写数据出错、程序崩溃或者无法须知的情况。#include<stdio.h>int main(){ int i; int arr[10]={1,2,3,4,5,6,7,8,9,10}; f...
2019-02-22 22:15:57 3063
原创 给定正整数,求出位数,正序逆序输出
给一个不多于5位的正整数,要求:①求出它是几位数;②分别输出每一位数字;③按逆序输出各位数字,例如原数为321,应输出123。算法思想:1、将待测数num依次和10000,1000,100,10进行求余,则num将依次被所得余数替换,例:X=X%10000。根据所得结果就可判断出该数是几位数。2、将上一步每次求得的余数存入,再顺序打印出每个数字,最后再逆序打印出其中的元素。代码如下:...
2018-10-26 17:16:07 2907
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人