
C语言知识点
雨纷飞_263
勤学如春起之苗,不见其增,日有所长;辍学如磨刀之石,不见其损,日有所亏。
展开
-
C语言-结构体(struct)
一、引言:若要定义一个变量,可以使用 C语言提供的基本数据类型(int、char等);如果需要定义多个相同变量(N:1),可以使用数组完成;如果需要定义多个不同变量(N:M),此时 C语言己经无法逐个给出定义,于是放开自定义权限,struct关键字就应运而生了。二、结构体定义、访问、赋值请看下面例子:#define _CRT_SECURE_NO_WARNINGS#include...原创 2019-04-17 10:26:43 · 627 阅读 · 0 评论 -
C语言-位运算
什么是位运算:程序中的所有数据,在计算机内存中都以二进制的形式存储。所谓位运算就是直接对数据在内存中的二进制位进行操作。C语言中的位运算符有:与(&),或(|),取反(~),异或(^),移位(<< >>)以及组合运算符(&= |= ^= >>= <<=)。一、位操作:1、位与(&):...原创 2019-04-15 10:43:51 · 614 阅读 · 0 评论 -
C语言-预处理
从源代码到可执行程序,要经历4个过程:预处理、编译、汇编、链接。在预处理阶段,主要完成:宏定义替换,头文件包含,条件编译,和其他(#等特殊运算符)。宏定义替换:#define 定义的宏,只能在一行内表达(换行符表示结束而非空格),如果想多行表达,则需要加续行符(\)1、宏常量:常被 const/ enum 变量取代,一般用于定义文件路径。#define FILEPATH...原创 2019-04-06 19:26:25 · 216 阅读 · 0 评论 -
C语言-内存管理(浅析)
一、进程和进程空间:1、什么是进程:指程序加载到内存后开始执行,到执行结束这样一段时间概念。对同一个程序,每打开一次该程序都会拉起一个新进程,关闭一个则结束一个进程。(程序是静态概念,而进程是动态概念)2、进程空间:程序运行起来就成为一个进程,进程所占用的空间就是进程空间。我们来看一下,进程空间是什么样的。3、栈(Stack):栈中可存放任意类型的变量,但必须是 aut...原创 2019-04-18 22:16:16 · 320 阅读 · 0 评论 -
C语言-文件读写操作
一、基本概念:1、文件流:C 语言把文件看作是一个字符的序列,即文件是由一个一个字符组成的字符流,因此 c 语言将文件也称之为文件流。即当读写一个文件时,可以不必关心文件的格式或结构。2、文本文件和二进制文件:计算机文件的存储,物理上都是二进制,所以文本文件与二进制文件的区别并不是物理上的, 而是逻辑上的。这两者只是在编码层次上有差异。简单来说,文本文件是基于字符编码的文件,常...原创 2019-04-19 11:35:01 · 9156 阅读 · 1 评论 -
C语言-字符串
C 语言中虽然可以处理字符串,但是没有提供字符串类型。字符串常量:存储于 rodata 段,不可更改,编译为指针,以'\0'结尾 。表现形式:“abcd”字符指针:用于指向字符串常量,但不能更改。表现形式:char *p = "abcd"字符数组:用于存储可更改字符串的数组。表现形式:char str[]="china"我们重点研究C语言中字符串的大小,存储,输入输出,字符串操作函...原创 2019-04-09 12:22:25 · 355 阅读 · 0 评论 -
C语言-实现单向链表
1、什么是链表:链表是一种在逻辑上连续,物理存储上不一定连续的存储结构。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。链表的结构,我们可以用下图描述:2、代码实现链表:链表所涉及的基本功能主要有:创建链表、插入结点、求链表的长度、查找、排序、遍历、...原创 2019-04-20 21:33:49 · 316 阅读 · 0 评论 -
C语言-typedef和#define用法
1、typedefC语言的关键字,其作用是给一种已有的数据类型取别名。这里的数据类型包括基本数据类型(int,char等)和自定义的数据类型(struct等)。使用typedef目的:一是给变量一个易记且意义明确的新名字,二是简化一些比较复杂的类型声明。2、#define宏,在C或C++语言中,“宏”分为有参数和无参数两种。使用#define的好处:一是方便程序的修改。使用简单...原创 2019-04-08 12:04:20 · 815 阅读 · 0 评论 -
C语言-实现栈(stack)
1、什么是栈栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算,这一端被称为栈顶,把另一端称为栈底。向一个栈插入新元素称作压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素称作出栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。栈的特点就是:先进后出(FILO),或是后进先出(LIFO)。栈的结构...原创 2019-04-21 10:44:37 · 4291 阅读 · 0 评论 -
C语言-库函数_srand&rand
随机函数:srand()和 rand()配合使用可以生成伪随机数序列,比如生成[1,100]以内的随机数。rand()函数在产生随机数前,需要系统提供的生成伪随机数序列的种子,rand()根据这个种子的值产生一系列随机数。如果系统提供的种子没有变化,每次调用 rand()函数生成的伪随机数序列都是一样的。一般以系统时间作为种子使用,通常用法如下:#include <std...原创 2019-04-04 13:01:20 · 790 阅读 · 0 评论 -
C语言-浅谈内存对齐
内存对齐:我们先来看一个现象,首先定义一个包含int、char、short三种基本类型的结构体,使用sizeof得到结构体实际占用内存为8个字节,这比直观计算的结构体内所有基本类型所占内存之和(4+1+2 = 7)要大,这就是内存对齐导致的。//#pragma pack(n),表示的是设置n字节对齐 默认#pragma pack(8)//环境:VS2013 可能存在平台差异#i...原创 2019-04-05 13:37:37 · 604 阅读 · 0 评论