
C语言
文章平均质量分 79
lu_1079776757
这个作者很懒,什么都没留下…
展开
-
动态通讯录
动态通讯录原创 2017-07-20 17:39:02 · 278 阅读 · 0 评论 -
C语言(六) 数组
今天我们要学习一下C语言中的数组,我们先来简单的看一下一维数组和二维数组的创建以及初始化,还有他们的使用。一维数组的创建和初始化数组的创建数组是一组相同的类型元素的集合。数组的创建方式:type_t arr_name [const_n];//type_t 是指数组的元素类型//const_n 是一个常量表达式,用来指定数组的大小数组的创建实例://代码1i原创 2018-02-04 22:11:56 · 477 阅读 · 0 评论 -
计算n的阶乘
1、计算n的阶乘#include<stdio.h>#include<stdlib.h>int main(){ int n = 3; int ret = 1; int i = 0; for (i = 1; i <= n; i++) { ret = ret*i; } printf("%d\n", ret); system("pause"); ...原创 2018-02-04 23:22:20 · 715 阅读 · 0 评论 -
C语言(七) 深度理解函数
首先我们先来复习一下之前学过的函数的基础知识。在简单函数中,我们已经学习了函数的声明和定义,学习了函数的参数、实参、形参、参数的设计,函数的使用等一些知识。函数的调用过程(栈帧)现在我们来深入的研究一下函数的调用过程。先来看一段代码:#include int Add(int x, int y){ int z = 0; z = x + y; return z;}int原创 2018-02-05 21:42:00 · 300 阅读 · 0 评论 -
C语言(八) 指针上
今天我们学习指针,我们现在来了解一下指针它是什么呢?在计算机科学中,指针是编程语言中的一个对象,利用地址,它的值直接指向存在电脑存储器中另一个地方的值。由于通过地址能找到所需要的变量单元,可以说地址指向该变量单元。因此将地址形象的称为“指针”。意思是通过它能找到以它为地址的内存单元。我们可以这么理解:对应代码如下:#include int main(){ int a原创 2018-02-06 13:58:13 · 267 阅读 · 0 评论 -
写一个宏可以将一个数字的二进制代码的奇数位和偶数位交换
1、写一个宏可以将一个数字的二进制代码的奇数位和偶数位交换。#include<stdio.h>#include<stdlib.h>#define SWAP(x) (((x&0xaaaaaaaa)>>1)+((x&0x55555555)<<1))int main(){ int a = 10; int ret = SWAP(a...原创 2018-02-09 13:52:55 · 323 阅读 · 0 评论 -
C语言(九) 深度剖析数据在内存中的存储 (上)
之前我们学习了基本的内置类型:charshortintlongfloatdouble以及它们所占存储空间的大小。类型的意义: 1.使用这个类型开辟内存空间的大小(大小决定了使用的范围) 2.如何看待内存空间的视角类型的归类:整形:char unsigned char signed charshort unsigned short[int] signed short[int...原创 2018-02-09 22:25:44 · 1021 阅读 · 1 评论 -
C语言(八) 指针下
上节我们看了指针的一部分,今天我们接着来学习指针。指针数组有了之前的概念,我们深入的学习一下。那什么事指针数组呢?指针数组是数组还是指针呢?(指针数组是数组,是一个存放了指针的数组)数组指针概念分析数组指针,是指针。我们已经熟悉了:整形指针:int * pint;能够指向整形数据的指针。 浮点指针:float * pf;能够指向浮点型数据的...原创 2018-02-06 14:34:45 · 198 阅读 · 0 评论 -
C语言(九) 深度剖析数据在内存中的存储 (下)
今天我们继续来学习数据在内存中的存储;C/C++程序内存的分配一个由C/C++编译的程序占用的内存分别为一下几个部分:1、栈区(stack)---- 由编译器自动分配释放,存放为运行函数而分配的局部变量、函数参数、返回数据、返回地址等。其操作方式类似于数据结构中的栈。2. 堆区(heap)---- 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。分配方式类似于链表。3. 全...原创 2018-03-04 15:45:20 · 347 阅读 · 0 评论 -
理解数组指针、指针数组、函数指针、函数指针数组
(1) 指针数组 : 一个数组里放的都是指针,我们把他叫做指针数组:) int * a[10]; 由于它是一个数组,他是不能从堆空间里申请空间的。 只能做个循环,每个元素去申请空间,或者每个元素去指向另外的地址空间。 ( 2 ) 数组指针 : 一个指向一唯或者多唯数组的指针; int * b=new int[10]; 指向一唯数组的指针b ; a 指向了一个栈空间中10个并排放置的 int...原创 2017-07-18 14:21:32 · 283 阅读 · 0 评论 -
文件版本的通讯录
之前我们实现了静态通讯录和动态通讯录,今天我们来实现文件版本的通讯录。直接上代码:test.c#include"address_list.h"void address_list(PADDRESS plist)//通讯录主函数{ int input = 0; do { menu2(); printf("请选择:>"); ...原创 2018-04-16 18:01:59 · 279 阅读 · 0 评论 -
模拟实现strcpy
strcpyvoid my_strcpy(char *pdest, char *psrc){ while (*psrc != '\0') { *(pdest++) = *(psrc++); } *pdest = *psrc;}int main(){ char arr[20] = { 0 }; my_strcpy(arr, "hello world"); printf("%...原创 2018-04-12 19:31:51 · 183 阅读 · 0 评论 -
冒泡排序算法
什么是冒泡排序呢?冒泡排序的英语名是Bubble Sort,是一种最基础的交换排序。 大家一定都喝过汽水吧,汽水中常常有许多小小的气泡,往上飘,这是因为组成小气泡的二氧化碳比水要轻,所以小气泡才会一点一点的向上浮。而冒泡排序之所以叫冒泡排序,正是因为这种排序算法的每一个元素都可以向小气泡一样,根据自身大小,一点一点向着数组的一侧移动。具体如何移动呢?我们来看一下例子: 有...原创 2018-07-19 22:31:43 · 403355 阅读 · 32 评论 -
C与C++的区别与联系
本篇博客对C与C++的区别与联系进行了整理。并对一些小的知识点进行了扩展。首先我们先来看一看C/C++的联系C/C++的联系: C是C++的子集,C++兼容大部分的C语言的语法结构C/C++的区别: 我们都知道C是面向过程的语言,而C++是面向对象的语言。那这里我们就要知道什么是面向对象? 面向对象是一种思想,是基于面向过程而言的,就是说面向对象是将功能等通过...原创 2018-05-26 21:43:58 · 2526 阅读 · 0 评论 -
编写一个代码,求一个数中的二进制中的1 的个数
1. 5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果A选手说:B第一,我第三。B选手说:我第二,E第四。C选手说:我第一,D第二。D选手说:C最后,我第三。E选手说:我第四,A第一。比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdli...原创 2018-01-30 18:09:08 · 264 阅读 · 0 评论 -
C语言(五) 简单函数
今天我们来学习一下C语言中的简单函数,首先我们要知道函数的定义是什么?在数学中我们经常看到函数的概念。但是我们是否了解C语言中的函数呢?在之前我们学过了两个变量的交换。西安在来看一下三个变量的交换。#include int main(){ int a = 10; int b = 20; //三个变量交换 int tmp = a; a = b; b原创 2018-01-31 16:46:45 · 561 阅读 · 0 评论 -
解析C语言结构体及位段
解析C语言结构体及位段原创 2017-07-18 15:38:52 · 1579 阅读 · 0 评论 -
模拟实现 strncpy strncat strncmp strchr strrchr 函数
1、模拟实现strncpy函数从第一个字符开始把src复制到dest里面去,如果src的长度大于n,则只复制前n个字符,如果src的长度小于n,则把src复制完后其余的全服复制成'\0'#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<iostream>void my_strncpy(char* dest...原创 2017-07-18 15:56:24 · 399 阅读 · 0 评论 -
简单通讯录
简单通讯录原创 2017-07-20 17:19:19 · 252 阅读 · 0 评论 -
c语言实现静态顺序表
c语言实现静态顺序表原创 2017-07-28 20:51:38 · 704 阅读 · 2 评论 -
C语言实现动态顺序表
C语言实现动态顺序表原创 2017-07-28 21:37:59 · 506 阅读 · 0 评论 -
链表基本操作
链表: 就是用一组任意的存储单元来存放线性表的元素,这组存储单元可以是连续的,也可以是不连续的,甚至可以是分布在任何位置。首先定义一个结构体:typedef int DataType; typedef struct ListNode{ DataType data; struct ListNode* next;}ListNode,*pNode;结点包括两个域:...原创 2017-11-03 15:20:15 · 230 阅读 · 0 评论 -
C语言(一) 初识C语言
C语言是最基础的语言,学好C语言,为学习其他语言打好了基础,今天我们来认识一下C语言。首先,我们来认识一下第一个C程序:#include int main(){ /*printf用于在标准输出上打印信息*/ //printf用于在标准输出上打印信息 printf("hello bit.\n"); return 0;}C语言中main函数的程序的入口原创 2018-01-30 18:48:59 · 335 阅读 · 0 评论 -
C语言(二) 分支语句结构
今天我们来看一下C语言中的分支语言结构,它包括if语句,switch语句和goto语句if语句什么是语句?C语言中由一个分号; 隔开的就是一条语句。比如:printf("hehe");1+2;if语句的语法 if(表达式) 语句; if(表达式) 语句1; else 语句2;解释:如果表达式的结果为真原创 2018-01-30 19:05:38 · 825 阅读 · 0 评论 -
C语言(三) 循环语句结构
今天我们来看一下循环语句结构;while语句1)语法格式while (条件){ 语句1; 语句2; … 语句n;}例1:在屏幕打印1-10;#include int main(){ int i = 1; while (i <= 10) { printf("%d ", i); i = i + 1; } r原创 2018-01-30 19:14:11 · 452 阅读 · 0 评论 -
猜数字游戏
首先我们来玩一个数字游戏:代码实现如下:#include#include#include void menu(){ printf("*****************************\n"); printf("*********** 1.play **********\n"); printf("*********** 0.exit **********\n");原创 2018-01-30 22:47:30 · 143 阅读 · 0 评论 -
折半查找算法(C语言)
之前我们实现了猜数字游戏,这个时候我们来看一下折半查找算法,其实猜数字游戏和折半查找算法很相像。折半查找算法对于折半查找算法,我们可以这么理解:代码如下:实现在主函数内:#include#includeint main(){ int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int left = 0; int原创 2018-01-30 22:50:12 · 4219 阅读 · 0 评论 -
C语言(四) 操作符和表达式(上)
操作符分类:算术操作符+ - * / %1. 除了%操作符之外,其他的几个操作符可以作用于整数和浮点数。2. 对于/操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。3. %操作符的两个操作数必须为整数。返回的是整除之后的余数。移位操作符>> 右移操作符左移操作符移位规则:左边抛弃、右边补0原创 2018-01-31 00:03:34 · 163 阅读 · 0 评论 -
C语言(四) 操作符和表达式(下)
位操作符位操作符有:& //按位与| //按位或^ //按位异或注:他们的操作数必须是整数。小小练习#include#includeint main(){ int num1 = 1; int num2 = 2; num1 & num2; num1 | num2; num1 ^ num2; system("pause"); return原创 2018-01-31 00:13:40 · 217 阅读 · 0 评论 -
排序算法总结
排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。内排序有可以分为以下几类:(1)、插入排序:直接插入排序、二分法插入排序、希尔排序。(2)、选择排序:简单选择排序、堆排序。(3)、交换排序:冒泡排序、快速排序。(4)、归并排序(5)、线性时间排序:计数排序、基数排序、桶排序...原创 2018-07-23 18:35:24 · 571 阅读 · 0 评论