
C语言
aaaaaaaaaa..
这个作者很懒,什么都没留下…
展开
-
C语言操作符总结
一.算术操作符+ - * / %除了 % 操作符,其余几个都是既适用于浮点型又适应整形。当 / 操作符的两边都为整型时,执行整除运算;其余情况为浮点数除法。二.赋值1.单=赋值x = y + 1 ;2.连续赋值a = b= c = 1;相当于 c = 1;b = c; a = b;c语言语法支持连续赋值,但这样会使代码可读性变差;3.复合赋值符+= ...原创 2019-04-27 12:50:23 · 432 阅读 · 0 评论 -
程序环境和预处理,命名空间
#define//#define 定义标识符#define MAX 1000#define reg register //为 register这个关键字,创建一个简短的名字#define do_forever for(;;) //用更形象的符号来替换一种实现#define CASE break;case //在写case语句的时候自动把 break...原创 2019-08-25 18:01:03 · 332 阅读 · 0 评论 -
C&C++内存管理
1.C/C++内存分布栈又叫堆栈,非静态局部变量/函数参数/返回值等等,栈是向下增长的。内存映射段是高效的I/O映射方式,用于装载一个共享的动态内存库。用户可使用系统接口创建共享共享内存,做进程间通信。堆用于程序运行时动态内存分配,堆是可以上增长的。数据段–存储全局数据和静态数据。代码段–可执行的代码/只读常量。2.C语言中动态内存管理方式2.1内存分配方式:从静态存...原创 2019-08-25 18:10:07 · 215 阅读 · 0 评论 -
指针及相关知识总结
一、什么是指针?*是 取指针目标运算符指针变量名与内存位置之间的关联由编译器实现,硬件可通过地址访问内存位置指针是有类型的,指针的类型决定了指针的±整数的步长,指针解引用操作的权限。指针就是地址,地址就是指针;指针变量是一个变量,它保存了基本类型变量的地址。如果指针变量p保存了变量a的地址,那么称作p指向了a,*p 就是变量a。如果p是一个指针变量,*p 表示了...原创 2019-08-22 12:44:34 · 368 阅读 · 0 评论 -
一二维数组,一二级指针传参
一维数组传参void test(int arr[]){}void test(int arr[10]){}void test(int *arr){}void test2(int *arr[20]) {}void test2(int **arr){}int main(){ int arr[10] = {0}; int *arr2[20] = {0}; ...原创 2019-08-22 12:49:18 · 443 阅读 · 0 评论 -
结构体内存对齐,位段,枚举,联合
结构体的声明struct Stu{ char name[20];//名字 int age;//年龄 char sex[5];//性别 char id[20];//学号};//分号不能丢 //特殊的声明//匿名结构体类型 在声明的时候省略掉了结构体标签(tag)struct{ int a; char b; ...原创 2019-08-22 12:51:04 · 229 阅读 · 0 评论 -
指针与数组的计算 sizeof与strlen
一维数组数组名只有处于以下两种情况时才代表整个数组:①数组名单独在sizeof内时。② &数组名(如&a)int a[] = {1,2,3,4};printf("%d\n",sizeof(* a));//a是首元素地址,*a是首元素 4 printf("%d\n",sizeof(&a));//数组的地址 4printf("%d\n",sizeo...原创 2019-08-22 12:52:00 · 351 阅读 · 0 评论 -
字符串+内存函数
求字符串长度strlen长度不受限制的字符串函数strcpy 字符串拷贝strcat 字符串连接strcmp 比较字符串大小长度受限制的字符串函数介绍strncpy 如果源字符串长度小于num,则用’\0’补齐strncat 和strcat相比,多个参数,把b串的前边的n个字符直接连接到a后边strncmp 和strcmp相比,...原创 2019-08-22 12:55:31 · 146 阅读 · 0 评论 -
c文件操作
什么是文件磁盘上的文件是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件:包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀为.exe)。数据文件:文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件。文件名一个文件要有唯一的文件标识,以方便用户识别...原创 2019-08-23 17:45:17 · 159 阅读 · 0 评论 -
大小端是什么?怎么测试当前机器是大端还是小端
大端和小端是什么?大端存储模式:就是内存的低地址上存着数据的高位,高地址上存着数据的低位。小端存储模式:就是内存的低地址上存数据的低位,而高地址上存数据的高位。为什么要有大小端?在计算机系统中,规定:每个地址单元都会对应一个字节(8个bit),但是,在c语言中,除了有一个字节(8个bit)的char,也有两个字节(16个bit)的short,也有四个字节(32个bit)的long(在...转载 2019-08-05 13:42:39 · 658 阅读 · 0 评论 -
数据结构之各种排序方式:直接插入,希尔,直接选择,冒泡,归并,计数,快速排序三种方式
1.排序的概念稳定性: 假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。内部排序: 数据元素全部放在内存中的排序。外部排序: 数据元素太多不能同时放在内存中,根据排序过程的要求不能在内外存...原创 2019-08-02 09:02:14 · 869 阅读 · 0 评论 -
青蛙跳台阶——C语言经典递归问题
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2 级……它也可以跳上n 级,此时该青蛙跳上一个n级的台阶总共有多少种跳法?问题分析跳一个台阶有1种跳法,两个有2种跳法,三个有3种跳法,四个有5种跳法,五个有8种跳法…∴ 当n=1时Fib=1, 当n=2时Fib=2, 当n>=3时Fib=Fib(n-1)+Fib(n-2)代码#include <...原创 2019-08-14 22:29:43 · 1097 阅读 · 0 评论 -
汉诺塔问题——C语言经典递归问题
问题描述汉诺塔问题是一个经典的问题。汉诺塔(Hanoi Tower),又称河内塔,源于印度一个古老传说。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,任何时候,在小圆盘上都不能放大圆盘,且在三根柱子之间一次只能移动一个圆盘。问应该如何操作?分析问题假设除了a最下面的...原创 2019-08-14 22:30:23 · 3403 阅读 · 0 评论 -
C语言函数
函数的参数实际参数(实参):真实传给函数的参数,叫实参。实参可以是:常量、变量、表达式、函数等。无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。形式参数(形参):形式参数是指函数名后括号中的变量,因为形式参数只有在函数被调用的过程中才实例化(分配内存单元),所以叫形式参数。形式参数当函数调用完成之后就自动销毁了。因此形式参数只在函数中有效。...原创 2019-08-14 22:30:58 · 106 阅读 · 0 评论 -
C语言分支与循环
关键字static在C语言中: static是用来修饰变量和函数的修饰局部变量修饰全局变量修饰函数static修饰局部变量改变了变量的生命周期,让静态局部变量出了作用域依然存在,到程序结束,生命周期才结束。一个全局变量被static修饰,使得这个全局变量只能在本源文件内使用,不能在其他源文件内使用。一个函数被static修饰,使得这个函数只能在本源文件内使用,不能在其他源...原创 2019-08-14 22:31:36 · 508 阅读 · 0 评论 -
*p++ *++p (*p)++三者区别详解
给出程序片段,方便测试以下各种结果#include <stdio.h>int main(){ int b[5] = { 11 22 33 44,55}; int *p = b; printf("%d\n", p); for (int j =0 ; j < 5; j++) printf("%d ", *p++); printf(...原创 2019-08-17 14:40:36 · 708 阅读 · 0 评论