每日学习笔记记录(分享更新版-凌乱)

函数和变量都需要满足:先声明后使用(重要)

在 函数的声明中,形参的名字可以省略

函数的定义是一种特殊的是声明,比声明更加强大;函数使用前必须进行声明,但不必要声明具体定义

.h------函数的声明

.c------函数的定义,说明使用

自己创建的头文件用""

标准库里面的头文件使用<>

隐藏关键代码------静态库

extern用来声明来自外部的符号

全局变量的作用域是整个工程

变量创建到销毁是他的一个生命周期

static只改变变量的生命周期(存储方式),不改变作用域

static修饰全局变量时,改变了全局变量的链接属性,使得外部链接属性变成了内部链接属性,这种变量只能在自己存在的.c文件中使用,其他文件不能使用

函数也具有外部链接属性,只要在其他文件中有正确声明,就可以直接使用

包含自己的头文件应该使用双引号

F5是让程序执行到(运行逻辑上的如循环)下一个断点处

调试就是指对单个语句进行研究和分析,开始执行不调试就是最好的例子Ctrl +F5

调试时候,箭头指向的是下一步即将执行的语句(按F10或者F11)

开始调试后才能看到监视窗口

四个二进制位可以表示一个16进制位

三个二进制位代表一个八进制位

每一个字节都有一个地址

栈区中内存的使用习惯:(不同的实现环境里存在区别,以下为X86环境)

优先使用高地址的空间再使用低地址的空间,数组随着下标的增长,使用的内存空间地址由低到高变化

不同的环境,bug或者release不同版本使用,都会影响最后程序执行的结果

release版本是存在优化的

数组在函数传参时不需要再继续定义类型

每次函数调用的时候在栈区里都会有属于他们的一个专属空间(运行式堆栈),使用结束后会销毁

循环是一种迭代,迭代不仅仅是一种循环

斐波那契数列------指数爆炸增长

青蛙跳台阶问题

反码,除符号位外其他位都取反,

补吗,反码+1

非负整数原码、反码、补码相同

char 是否为signed char取决于编译器,在VS上是signed

char类型的取值范围:-128~127

x86_------32位环境

x64 ------64位环境

数组的元素是连续存放的

指针变量的访问和加减的空间都取决于 他的类型

指针-指针必须类型一致,连续同一的空间内

数组名其实是数组首元素的地址

有两个例外:

1.sizeof(数组名)

这里的数组名表示的是整个数组,计算的是整个数组

2.&数组名

这里的数组名也表示整个数组,取出的是整个数组的地址

除此之外,所有的数组名都是数组首元素的地址

arr[i]也可以写成i[arr],但是可读性不高

数组传参,形参部分写成数组

数组传参的本质,是传递数组首元素的地址,所以形参即使写成数组的形式,本质上也是一个指针变量

数组传参部分可以写成数组也可以写成指针

指针类型决定了指针的差异

size_t是一种无符号整型

在 C 语言里,'\0' 代表的是 ASCII 码值为 0 的空字符(Null Character)。它的数值等同于整数 0。在字符串里,'\0' 一般被用作字符串的结束符,以此表明字符串到此结束。

一个局部变量未初始化的话,他的值是随机的

空指针不能直接访问

使用指针前检查是否为空指针,保证程序没有问题if(p !=NULL)

避免返回局部变量的地址

使用%s打印字符串的时候 ,只需要提供首字符地址就行

常量字符串不能被修改,数组能被修改

内容相同的常量字符串只需要保存一份

排序算法:

冒泡排序

插入排序

选择排序

快速排序

qsort底层使用的快速排序的思想

两个字符串比较大小不能使用><>=<=

应该使用strcmp,比较的是对应位置上字符的ASCII值大小,不是字符串的长度

比较两个结构体

声明函数时,可以省略参数变量名字

void* 泛型编程

sizeof是操作符不是函数

strlen是库函数,求字符串的长度,只能针对字符串(字符数组),遇到\0停

strlen的参数需要是地址 size_t strlen(const char* str)

相关推荐
map_3d_vis3 小时前
JSAPIThree 天空和天气系统学习笔记:营造真实的环境氛围
学习笔记·天气系统·初学者·mapvthree·jsapithree·天空系统·defaultsky·dynamicsky·staticsky·dynamicweather
map_3d_vis1 天前
JSAPIThree UI 控件学习笔记:用内置控件提升交互
学习笔记·zoom·初学者·compass·ui控件·mapvthree·jsapithree·enginewidgets·exportimage
大佬,救命!!!1 天前
更换适配python版本直接进行机器学习深度学习等相关环境配置(非仿真环境)
人工智能·python·深度学习·机器学习·学习笔记·详细配置
map_3d_vis3 天前
JSAPIThree 标签使用学习笔记:在地图上添加文字和图标
学习笔记·标签·label·初学者·mapvthree·jsapithree·文字标签·图标标签
PyGata4 天前
CMake学习笔记(一)
学习笔记·cmake·cmakelists
四谎真好看5 天前
Java 黑马程序员学习笔记(进阶篇28)
java·笔记·学习·学习笔记
大佬,救命!!!5 天前
最新的python3.14版本下仿真环境配置深度学习机器学习相关
开发语言·人工智能·python·深度学习·机器学习·学习笔记·环境配置
大佬,救命!!!6 天前
C++函数式策略模式代码练习
开发语言·c++·学习笔记·学习方法·策略模式·迭代加深·多文件编译
四谎真好看10 天前
Java 黑马程序员学习笔记(进阶篇27)
java·开发语言·笔记·学习·学习笔记
大佬,救命!!!12 天前
C++函数式策略模式中配置修改
c++·学习笔记·迭代加深·企业级·函数式策略模式·多文件编译环境·json环境配置修改