C语言进阶剖析【笔记】
文章平均质量分 67
该系列内容为狄泰软件学院唐老师课程笔记,记录下来以备自己随时查阅
洋葱汪
这个作者很懒,什么都没留下…
展开
-
C语言中的动态内存分配原理与基本素养
1、动态内存分配的意义C语言中的—切操作都是基于内存的变量和数组都是内存的别名-内存分配由编译器在编译期间决定-定义数组的时候必须指定数组长度-数组长度是在编译期就必须确定的需求:程序运行的过程中,可能需要使用—些额外的内存空间。2、...原创 2018-04-29 23:05:55 · 487 阅读 · 0 评论 -
复杂指针阅读技巧分析
1、指针阅读技巧解析右左法则 (实在看不懂看这个) -从最里层的圆括号中未定义的标示符看起 -首先往右看,再往左看 - 遇到圆括号或方括号时可以确定部分类型,并调转方向 -重复2, 3步骤,直到阅读结束2、编程实验复杂指针的阅读3...原创 2018-04-28 20:01:12 · 284 阅读 · 0 评论 -
函数与指针分析
1、函数类型C语言中的函数有自己特定的类型函数的类型由返回值,参数类型和参数个数共同决定★int add(int i, int j) 的类型为int(int, int)C语言中通过typedef为函数类型重命名★typedef type name(parameter list)2...原创 2018-04-27 22:23:09 · 196 阅读 · 0 评论 -
main函数与命令行参数
1、main函数的概念C语言中main函数称之为主函数—个C程序是从main函数开始执行的下面的main函数定义正确吗? 经实验可知都正确2、编程实验main函数的原型 33-1.cintmain(){return...原创 2018-04-24 22:15:48 · 464 阅读 · 0 评论 -
C语言中的字符串
目录C语言中的字符串字符串典型问题分析C语言中的字符串1、字符串的概念字符串是有序字符的集合字符串是程序中的基本元素之一C语言中没有字符串的概念 - C语言中通过特殊的字符数组模拟字符串 - C语言中的字符串是以'\0'结尾的字符数组2、字符数组与字符串在C语言中,双引号引用的单个或多个字符是一种特殊的字面量 ...原创 2018-04-21 20:12:33 · 327 阅读 · 0 评论 -
指针和数组的本质分析
目录1、指针的本质分析1、*号的意义2、传值调用与传址调用3、常量与指针2、数组的本质分析1、数组的基本概念2、数组地址与数组名3、数组名与指针4、数组的底层分析3、指针和数组分析1、指针的运算2、数组的访问方式3、a和&a的区别4、数组参数4、小结1、指针的本质分析1、*号的意义程序中的变量只是—...原创 2018-03-29 13:23:49 · 1053 阅读 · 0 评论 -
# 和 ## 操作符使用分析
1、#运算符#运算符用于在预处理期将宏参数转换为字符串#的转换作用是在预处理期完成的,因此只在宏定义中有效编译器不知道#的转换作用用法 :#define STRING(x) #xprintf("%s\n", STRING(Hello World!));2、实例分析#运算符的基本用法25-1.c#include<stdi...原创 2018-03-27 21:10:31 · 329 阅读 · 0 评论 -
#pragma 使用分析
目录1、#pragma简介2、#pragma message3、#pragma once4、#pragma pack1、#pragma简介#pragma用于指示编译器完成一些特定的动作#pragma所定义的很多指示字是编译器特有的#pragma在不同的编译器间是不可移植的 -预处理器将忽略它不认识的#pragma指令 -不同的编...原创 2018-03-26 22:21:44 · 410 阅读 · 0 评论 -
#error 和 #line 使用分析
1、#error的用法#error用于生成—个编译错误消息用法 : #error message (message不需要用双引号包围)#error编译指示字用于自定义程序员特有的编译错误消息类似的,#warning用于生成编译警告。#error是一种预编译器指示字#error可用于提示编译条件是否满足...原创 2018-03-26 13:57:08 · 675 阅读 · 0 评论 -
条件编译使用分析
1、基本概念条件编译的行为类似于C语言中的if…else…条件编译是预编译指示命令,用于控制是否编译某段代码2、实例分析条件编译初探22-1.c#include<stdio.h>#defineC1intmain(){constchar*s;#if(C==1)...原创 2018-03-26 13:24:24 · 334 阅读 · 0 评论 -
宏定义与函数分析
1、C语言中的宏定义#define是预处理器处理的单元实体之—#define定义的宏可以出现在程序的任意位置#define定义之后的代码都可以使用这个宏2、定义宏常量#define定义的宏常量可以直接使用#define定义的宏常量本质为字面量下面的宏常量定义正确吗?#defineERROR-1#definePATHl"D:...原创 2018-03-25 15:00:36 · 313 阅读 · 0 评论 -
编译、链接过程简介
目录1、编译过程简介2、链接过程简介3、小结1、编译过程简介初识编译器你不知道的事。。。预编译-处理所有的注释,以空格代替-将所有的#define删除,并且展开所有的宏定义-处理条件编译指令#if, #ifdef, #elif, #else, #en...原创 2018-03-25 12:29:11 · 419 阅读 · 0 评论 -
三目运算符和逗号表达式
1、三目运算符三目运算符(a?b:c)可以作为逻辑运算的载体规则:当a的值为真时,返回b的值;否则返回c的值下面的程序运行结束后,a, b, c的值分别为多少inta=1;intb=2;intc=0;c=a <b ?a:b;(a<b ?a:b)=3;2、实例分...原创 2018-03-25 10:02:21 · 373 阅读 · 0 评论 -
单引号和双引号
1、单引号和双引号C语言中的单引号用来表示字符字面量C语言中的双引号用来表示字符串字面量'a'表示字符字面量 ,在内存中占1个字节'a'+1表示'a'的ASCII码加1, 结果为'b'"a"表示字符串字面量 ,在内存中占2个字节...原创 2018-03-22 14:29:58 · 500 阅读 · 0 评论 -
接续符和转义符
1、接续符的意义C语言中的接续符(\)是指示编译器行为的利器 2、实例分析初探接续符 13-1.c#in\clud\e<st\dio.h>in\tm\ain(\){pri\ntf\(\"HelloWSS\n")\...原创 2018-03-22 14:03:06 · 567 阅读 · 0 评论 -
注释符号
1、似是而非的问题下面的注释正确吗?int main(){ int/*...*/i; char* s = "abcdefgh //hijklmn"; //Is it a \ valid comment? in/*...*/t i; return 0; }2、...原创 2018-03-21 23:00:12 · 1686 阅读 · 0 评论 -
enum, sizeof, typedef 分析
1、枚举类型的使用方法enum是C语言中的一种自定义类型enum值可以根据需要自定义整形值第一个定义的enum值默认为0默认情况下的enum值是在前一个定义值的基础上加1enum类型的变量只能取定义时的离散值enumColor{GREEN,RED=2;BLUE};...原创 2018-03-21 13:30:44 · 408 阅读 · 0 评论 -
struct 和 union 分析
本节实验了空结构体大小,介绍了柔性数组1、struct的小秘密C语言中的struct 可以看作变量的集合struct 的问题:空结构体占用多大内存?2、实例分析空结构体的大小 test.c#include<stdio.h>structTS{};intmain(){structT...原创 2018-03-19 23:00:27 · 324 阅读 · 0 评论 -
goto分析
1、遭人遗弃的goto高手潜规则:禁用goto项目经验:程序质量与goto的出现次数成反比最后的判决:将goto打入冷宫2、实例分析goto副作用分析 8-1.c#include <stdio.h> #include <malloc.h> void fun...原创 2018-03-17 20:00:11 · 212 阅读 · 0 评论 -
分支语句和循环语句,为什么switch效率比if高?
目录分支语句switch与if..else效率分析循环语句分支语句1、if语句分析if语句用于根据条件选择执行语句else不能独立存在且总是与它最近的if相匹配else语句后可以连接其它if语句 if语句中零值比较的注意点 - bo...原创 2018-03-16 13:04:11 · 1816 阅读 · 0 评论 -
C语言的变量属性 - auto、register、static、extern
1、C语言的变量属性C语言的变量可以有自己的属性在定义变量的时候可以加上"属性"关键字"属性"关键字指明变量的特有意义语法:property type var_name例如:int main(){ auto char i; register int j; static long k; extern double m; retur...原创 2018-03-15 23:02:30 · 388 阅读 · 4 评论 -
浮点数的秘密
1、内存中的浮点数浮点数在内存中的存储方式为:符号位,尾数,指数 (遵循IEEE754编码规范) float与double类型的数据在计算机内部的表示法是相同的,但由于所占存储空间的不同, 其分别能够表示的数据范围和精度不同。 例如:对于5.1...原创 2018-03-15 13:48:27 · 899 阅读 · 1 评论 -
有符号与无符号
1、计算机中的符号位 有符号编码规则:数据的最高位用于标识数据的符号 -最高位为1,表示这个数为负数 - 最高位为0,表示这个数为正数无符号编码规则:数据的最高位不代表符号位 - 计算机不知道数据的正负,看人怎么看待2、编程实验有符号数的符号位 2-1.c#inclu...原创 2018-03-15 11:23:56 · 2178 阅读 · 1 评论 -
类型与变量,void分析,类型转换
目录基本数据类型void分析类型转换基本数据类型1、什么是数据类型? 数据类型可以理解为固定内存大小的别名 数据类型是创建变量的模子需要注意:"short和int最少是16bits, long类型最少是32bits"(具体看多少位计算机)2、变量的本质...原创 2018-03-14 23:00:27 · 806 阅读 · 0 评论