字符串
摘要:https://www.jianshu.com/p/4db7a5eedc42 c语言中字符串有3个核心要点:第一是用指针指向字符串的头;第二是固定尾部(字符串总是以\n来结尾);第三是组成字符串的各字符彼此地址相连。 \0'作为特殊的数字被字符串定义为结尾标志:副作用是字符串中无法包含‘\0'这个字
阅读全文
getchar()与putchar()
摘要:getchar() 用于读取用户从键盘输入的单个字符,它有一个整型的返回值,当发生读取错误的时候,返回整型值-1,当读取正确的时候,它会返回用户从键盘输的第一个字符的ASCII码, 当程序调用getchar时.运行程序时就等着用户从按键输入,用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回
阅读全文
Optimisation
摘要:https://www.cnblogs.com/wuyudong/p/writing-efficient-c-and-code-optimization.html 1 不要过多使用 stack ,尽量不要在satck里放太大的变量,比如结构体 2 用循环不要用递归 第一个最好放最大的 4 最好不要总
阅读全文
内存操作【memset】【memcpy】
摘要:void *memset(void *s, int c, unsigned long n); 将指针变量 s 所指向的前 n 字节的内存单元用一个“整数” c 替换,注意 c 是 int 型。s 是 void* 型的指针变量,所以它可以为任何类型的数据进行初始化。
阅读全文
Dynamically allocated memory 动态分配内存【malloc】Memory leaks 内存泄漏
摘要:内存泄露Memory leaks :没有指针指向原来a分配出来的那段空间了
阅读全文
const pointers
摘要:1 指针 p对应的地址是常量,但是里面存放的data不是常量 2 地址里存放的data是常量,但是地址不是常量 3 地址和指针都是常量
阅读全文
heap是堆,stack是栈
摘要:1.栈是用来存放基本类型的变量和引用类型的变量,堆用来存放new出来的对象和数组。 2.栈的存取速度快,但不灵活。堆的存取速度慢,但是存取灵活,空间动态分配。 3.栈在建立在连续的物理位置上,而堆只需要逻辑位置连续即可。 4.堆是JVM运行时最大的内存区域。 巨佬的答案: Java的内存分为两类,一
阅读全文
隐式数据类型转换
摘要:C在以下四种类型中会进行隐式转换: 1. 算术运算符中,低类型转换为高类型 (1)有符号的和无符号的计算,会优先转换为无符号类型: (2)其他转换规则如下: 2. 赋值表达式中,右边的值自动隐式转换为左边变量的类型,并赋值 3. 函数调用参数传递,系统隐式将实参转换为形参的值 4. 函数有返回值,系
阅读全文
并行程序编程
摘要:https://blog.csdn.net/xuyiqiang87/article/details/52763653
阅读全文
结构体
摘要:https://blog.csdn.net/as480133937/article/details/83473208 结构体指针不能用 . 要用 箭头 结构体传递的是指针,一个结构体变了,另一个也跟着变
阅读全文
文件操作
摘要:函数原型为:_CRTIMP FILE * __cdecl fopen(const char *, const char *); 第一参数为文件名,第二个参数为打开模式。 打开成功,fopen返回一个结构指针地址,否则返回一个NULL。如果没有指定文件路径,则默认为当前工作目录。如: FILE *fp
阅读全文
c语言的变量,常量及作用域等
摘要:1.const定义常量 在C语言中,const可以用来定义的一个常量,在变量名前加上const即可。 int const a; 定义了一个a的整数常量,且a的值不能被修改。如果要修改a的值,有以下两种方法。 方法一 int const a=100; 在定义时,就对它进行初始化 方法二 在函数中声明c
阅读全文
函数指针
摘要:https://www.bilibili.com/video/av84476631?p=12 f_p是一个函数的指针 第一个是一个返回值为int指针的 函数 第二个是 一个返回值为int的函数的指针
阅读全文
指针
摘要:面我们从指针是变量这个原则出发,来分析什么是指针: 作为一个变量,肯定有自己的地址 作为一个变量,肯定有自己的值,和普通变量的区别就是指针变量的值是地址。 从第二点延伸过来,既然指针变量的值是地址,那么那个地址上的内容就是指针变量指向的数据,指针的类型就是指针变量指向数据的类型。 指针有本身的类型,
阅读全文
指针与数组
摘要:比较模糊的说法是:数组名就是指针 但两者还是有区别的 从输出结果看两者根本就是两个事物,只能说数组名神似指针,数组名的内涵在于其指代实体是一种数据结构,这种数据结构就是数组;那么数组名到底是什么: 符号表是编译原理中的一个概念,应用于编译器的词法分析和语义分析两个阶段。词法分析的目标是让编译器能知道
阅读全文
【extern】【static】
摘要:C语言根据变量的生存周期来划分,可以分为静态存储方式和动态存储方式。 静态存储方式:是指在程序运行期间分配固定的存储空间的方式。静态存储区中存放了在整个程序执行过程中都存在的变量,如全局变量。 动态存储方式:是指在程序运行期间根据需要进行动态的分配存储空间的方式。动态存储区中存放的变量是根据程序运行
阅读全文
格式化输出语句
摘要:格式化输出语句,也可以说是占位输出,是将各种类型的数据按照格式化后的类型及指定的位置从计算机上显示。 其格式为:printf("输出格式符",输出项); 格式符的个数要与变量、常量或者表达式的个数一一对应
阅读全文
C语言数据类型
摘要:C语言中不存在字符串变量,字符串只能存在字符数组中
阅读全文
C语言中.h和.c文件解析
摘要:c语言中.c和.h文件: 本质上没有任何区别。 只不过一般:.h文件是头文件,内含函数声明、宏定义、结构体定义等内容 .c文件是程序文件,内含函数实现,变量定义等内容。而且是什么后缀也没有关系,只不过编译器会默认对某些后缀的文件采取某些动作。你可以强制编译器把任何后缀的文件都当作c文件来编。 这样分
阅读全文