
c
DW_____
加油,做最好的自己!
展开
-
二维数组
二维数组1.二维数组与二维数组的初始化 二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,类型说明符:数组名[常量表达式][常量表达式]。二维数组行优先。 二维数组的初始化,代码1表示如下:#include <stdio.h>int main(){ int brr[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}}; int ...原创 2018-04-16 21:10:14 · 9652 阅读 · 0 评论 -
内存重叠
内存重叠体现的一个方面就是,将一个数组长为n中的最后m个数移到最前面,前面m-n个数字移到后面。或者是将一个数组长为n中的前面m个移到最后面,后面n-m个移到最前面。这两种情况下会出现内存重叠现象。下面用图来说明下问题:1和3会出现内存重叠现象,2和4不会出现内存重叠现象往后或者往前移动时先移前面先移后面都一样。...原创 2018-05-15 13:03:23 · 407 阅读 · 0 评论 -
结构体内存对齐
结构体内存对齐:元素是按照定义顺序一个一个放到内存中去的,但并不是紧密排列的。从结构体存储的首地址开始,每个元素放置到内存中时,它都会认为内存是按照自己的大小来划分的,因此元素放置的位置一定会在自己宽度倍数上开始。1.struct A{ char a; int b;};sizeof(A) = 8 ,原因是a占据一个字节,然而b要占取4个字节,所以它的偏移地址必须是4的倍数,所以最近的数就...原创 2018-05-08 00:07:42 · 129 阅读 · 0 评论 -
c语言总结—变量的属性
一、首先写一下函数指针在c语言中的应用。#include <stdio.h>int MAX(int a,int b){ return a>b ? a : b;}int MIN(int a,int b){ return a<b ? a : b;}int AVG(int a,int b){ return (a+b)/2;}int Fun(int ...原创 2018-04-29 16:39:27 · 1674 阅读 · 0 评论 -
动态内存
c语言的内存分配方式:1>.静态储存区域分配 内存在程序编译的时候就已经分配好了,这块内存在程序的整个运行期间都存在.例如全局变量、static变量,2>.在栈上创建 在执行函数时,函数内局部变量的储存单元都可以在栈上创建,函数执行结束时这些内存单元自动会被释放。栈内存分配运算置于处理器的指令集中,效率高,但是可分配的内存有限(1M)但是可调配。3>.堆上分配 ...原创 2018-04-27 10:57:03 · 194 阅读 · 0 评论 -
C语言--创建二维数组动态内存
动态内存一般用malloc函数申请,free函数释放.这篇博文主要写一下如何创建二维动态内存,下面介绍几种方法.强转法:#include <stdio.h>#include <stdlib.h>#include <vld.h>int main(){ int (*p)[4]=(int(*)[4])malloc(sizeof(int)*3*4);//申请...原创 2018-05-03 15:09:34 · 1060 阅读 · 0 评论 -
字符串崩溃原因
字符串崩溃原因:a.试图修改字符串常量的值例如:int main(){ char *str = "abcde";//字符串常量,4字节 str[0] = 'x';//写错误 strcpy(str,"xyz");//错误,字符串常量不能进行复制}b.越界例如:#include <stdio.h>#include <string.h>int main(){ c...原创 2018-04-13 16:55:50 · 288 阅读 · 0 评论 -
c语言之const的用法
本篇博文简单的讲讲c语言的const的用法。const:定义常变量,不能写,只读a.数据类型对于const而言是透明的b.const用于封锁直接修饰的内容,将内容改变为只读来段代码说明~~~int main(){ int a = 10;//读,写 int b = 20;//读,写 const int ca = 10;//读 int const cb = 20;//读 int *p = ...原创 2018-04-12 19:58:35 · 194 阅读 · 0 评论 -
递归函数
编程语言中,函数Fun(Type a,......)直接或间接调用函数本身,则该函数称为递归函数。 下面举一个栗子: 有5个学生坐在一起,问第5个学生多少岁,他说他比第4个学生大两岁。问第4个学生岁数,他说他比第3个学生大2岁。问第3个学生,又说比第2个学生大2岁。问第2个学生,说比第1个学生大2岁。最后问第1个学生,他说是10岁。请问第5个学生多少大。//Age(5):表示第5个人的年龄...原创 2018-04-17 22:58:35 · 216 阅读 · 0 评论 -
指针(一)
一、关于指针的一些定义1>指针简而言之就是地址,“指针=地址”。int *p=&a; //定义时*说明P是个指针(地址)变量 int *p=100; //解引用。2>获取任何变量的地址都是:&变量名。3>*指针变量名,则间接访问(调到、解引用)到指针所指的变量。通过下列代码对对指针进行进一步的诠释:int main(){int a=20;int b=30;...原创 2018-04-02 00:35:24 · 136 阅读 · 0 评论 -
输出整数的位数、顺序输出整数各位数字、逆序输出整数各位数字
一、输出整数的位数 运用“去尾法”获取整数n的位数。“去尾法”是将整数n/10后重新赋值给n,可将整数n的最后一位数去掉。每次去掉一位,计数器+1,直到整数n被赋值为0时,计数器停止计数,此时计数器的数字为整数n的位数。考虑当整数n取0时,运用do-while循环语句可以进入循环。源代码:int GetFigures(int n){ int count=0; //计数器 do ...原创 2018-03-28 15:05:20 · 12408 阅读 · 1 评论 -
指针(二)
关于指针上一篇指针(一)中提到的解引用,在这一篇中继续进行进一步的诠释,描述解引用更多的应用方式。 子函数:被调用函数 ;父函数:调用函数。关于父函数调用子函数的调用,子函数的改变要想改变父函数的值,必须要 传指针 解引用 有关父函数调用子函数代码有几处容易出错的地方,代码如下:void Swap_err1(int a,int b){ int tmp; tmp = a; a = b;...原创 2018-04-02 13:31:50 · 138 阅读 · 0 评论 -
指针的算数运算及数组(一)
字符数组和字符串是考试重点,使用重点。字符串:以""包括的字符序列带'\0',结束标志是'\0',只要有'\0'的就是字符串。字符数组是由若干个数组元素组成的,它可以用来存放整个字符串。以下举几个栗子代码如下:#include <stdio.h>int main(){ char a[10]={'1','2','3'}; //是字符串,剩余部分为'\0' char b[]={'...原创 2018-04-05 20:40:51 · 276 阅读 · 0 评论 -
指针的算数运输(二)
一、指针+-数字1、指针+1考虑有三种情况,下面进行每一种情况的分析:(1) 加整个数组 指针+1若是加整个数组,数组中间的值根本没有被遍历到这样的“+1”是没有任何意义的,数组中间的值没有被用到。(2) 加一个字节 举一个例子:#include <stdio.h>int main(){ int a[10]={1,2,3,4,5,6,7,8,9};...原创 2018-04-06 10:29:28 · 247 阅读 · 1 评论 -
关于进制的例题
一、简单推论首先先举一个十进制的栗子: 114*221=25194即(1*10^2+1*10^1+4*10^0)*(2*10^2+2*10^1+1*10^1)=(2*10^4+5*10^3+1*10^2+9*10^1+4*10^1)可以发现,相乘的两个数字,若个位相乘模n(进制)是结果的个位数字,上面的十进制(4*1)%10=4,验证了这条结论。即n进制 abc*def=zxy (a*n...原创 2018-04-11 12:23:29 · 491 阅读 · 0 评论 -
定长顺序表
顺序表的存储结构可以构造一个定长的数组elem来存放数据,然后定义变量cursize来存放有效数据的个数,即有效长度。顺序表的代码实现SeqList.h#define ARRAY_SIZE 10typedef int ELEM_TYPE;typedef struct Seqlist{ ELEM_TYPE elem[ARRAY_SIZE]; int cursize;}S...原创 2018-10-09 16:12:14 · 215 阅读 · 1 评论