c语言编程
文章平均质量分 86
éç¨
我相信。。
展开
-
给定正整数,求出位数,正序逆序输出
给一个不多于5位的正整数,要求:①求出它是几位数;②分别输出每一位数字;③按逆序输出各位数字,例如原数为321,应输出123。算法思想:1、将待测数num依次和10000,1000,100,10进行求余,则num将依次被所得余数替换,例:X=X%10000。根据所得结果就可判断出该数是几位数。2、将上一步每次求得的余数存入,再顺序打印出每个数字,最后再逆序打印出其中的元素。代码如下:...原创 2018-10-26 17:16:07 · 2852 阅读 · 0 评论 -
struct内存对齐
在学习结构体过程中,遇到了内存对齐问题,所以我总结了一下这个知识点,供大家参考:内存对齐:各种数据存放的地址要能够整除该数据本身的字节数char可存放在任意地址,short存放在能被2整除的地址,int存放在能被4整除的地址······以此类推。内存对齐的规则:1、先将每个成员的字节数写出,然后从第二个成员开始,将前面成员的总字节数补齐成当前字节数的倍数2、结构体的总大小,一定要能整...原创 2019-03-14 16:50:52 · 318 阅读 · 0 评论 -
动态内存分配
动态内存分配的特点:1、不需要预先分配存储空间;2、分配的空间可以根据程序的需要扩大和缩小。要实现根据程序的需要动态分配存储空间,需要用到malloc、calloc、realloc、free函数。各个函数有特定的功能:malloc函数:申请内存calloc函数:初始化为0realloc函数:修改内存大小(扩大,缩小)free函数:释放内存,内存泄漏由一个例子来解...原创 2019-03-03 22:42:54 · 147 阅读 · 0 评论 -
数组的数据类型判断
首先了解一下几个特殊的名词:int (*x)[4]; 指向数组的指针,简称 数组指针;int *x[4]; 保存指针的数组,简称 指针数组;int *f(); 返回值为指针的函数,简称 指针函数;int (*f)(); 指向函数的指针;简称 函数指针。接下来对一维数组和二维数组的数据类型进行比较:int arr[4]; ...原创 2019-03-03 21:58:40 · 752 阅读 · 0 评论 -
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 · 295 阅读 · 0 评论 -
魔方阵
所谓“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 · 593 阅读 · 1 评论 -
指针的应用——数组逆置
#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 · 1700 阅读 · 0 评论 -
指针的算术运算(类比日期)
首先了解一下指针的大小:在32位(X86)平台是4字节,在64位(X64)平台是8字节。指针的加法有三种可能:1、指针加1,加一个字节(考试常用); 2、指针加1,加一个单元格(常用); 3、指针加1,加整个数组(没...原创 2019-02-23 21:16:40 · 160 阅读 · 0 评论 -
指针的应用——参数传递
在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 · 660 阅读 · 0 评论 -
进制转换
假设在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 · 154 阅读 · 0 评论 -
数组越界
所谓数组越界,简单地讲就是指数组下标变量的取值超过了初始定义时的大小,导致对数组元素的访问出现在数组的范围之外。程序中经常会遇到数组越界的情况,表现形式一般为读写数据出错、程序崩溃或者无法须知的情况。#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 · 3031 阅读 · 0 评论 -
文件
1、数据的两种存放形式文本文件二进制文件2、存放位置一般保存在磁盘(外存):硬盘①机械硬盘:价格便宜(大约0.3元/G),可以做到大容量,易损,速度慢 ②固态硬盘:价格贵(1.8元/G),速度快内存:比硬盘速度快,但是断电后内存里的内容全部丢失(推荐三星的内存和固态...原创 2019-03-17 14:17:56 · 224 阅读 · 0 评论