C语言知识-零零散散(一)

告别理论!手把手教你用Patran/Nastran搞定悬臂翼的颤振分析(附完整模型文件) 本文提供了一份详细的Patran/Nastran悬臂翼颤振分析实战指南,涵盖从几何建模到结果解读的全过程。通过手把手教学和完整模型文件,帮助工程师和学生快速掌握气动弹性分析技术,特别适合需要实际操作的初学者。文章重点介绍了模态分析、气动建模和颤振求解等关键步骤,并提供了常见问题排查和优化建议。 阅读详情

C语言知识-零零散散(一)

分类记忆C语言32个关键字

分类记忆
在这里插入图片描述

C语言编译过程

在这里插入图片描述

  1. 预处理,主要处理源代码中的预处理指令,引入头文件,去除注释,处理所有的条件编译指令,宏替换,添加行号。经过预处理指令后生成一个.i文件;

  2. 编译,编译过程所进行的是对预处理后的文件进行语法分析、词法分析、符号汇总,然后生成汇编代码。生成.s文件;

  3. 汇编,将汇编文件转换成二进制文件,二进制文件就可以让机器来读取。生成.o文件;

  4. 链接,将多个目标文件及所需要的库文件链接变成可执行文件

原码、反码、补码

在计算机中,一个数字是以二进制的形式存储的,也可以称为机器数。数字是有正负的,所以机器数的最高位表示符号位(0表示正数,1表示负数),其余的是数值位。我们人脑是可以知道最高位是符号位,然后可以对两个数字进行加减运算,但是让计算机进行识别,就显得没有那么的简单,那么为了可以让符号位也可以参与运算就产生了数字的原码、补码、反码,这样可以实现让计算机只进行加法运算(减法,即减去一个正数等于加上一个负数)。

原码

概念:最高位是符号位(0表示正数,1表示负数),数值位是数字本身绝对值的二进制数。

对于一个数字,正数的原码是其本身的二进制数;负数的原码是在其绝对值的基础上,最高位变为1。

例如:

数字原码(8位二进制)
-101000 1010
+1000110 0100
-11000 0001

反码

正数的反码是其本身;负数的反码是符号位保持不变,其他部分按位取反。

数字反码(8位二进制)
-101111 0101
+1000110 0100
-11111 1110

补码

一个正数的原码、反码、补码相同,负数的补码是其原码的基础上, 符号位不变, 其余各位取反, 最后+1(即,负数反码的基础上+1)。

数字补码(8位二进制)
-101111 0110
+1000110 0100
-11111 1111

sizeof关键字

sizeof不是函数,用于计算一个数据类型的大小,单位为字节。sizeof返回的是一个size_t类型的值,表示一个无符号的整数。

sizeof和strlen的区别?

  • sizeof是一个操作符,strlen是库函数;
  • sizeof的参数可以是数据的类型,也可以是变量,而strlen只能以结尾为‘\0‘的字符串作参数;
  • 编译器在编译时就计算出了sizeof的结果。而strlen函数必须在运行时才能计算出来;
  • sizeof计算的是数据类型占内存的大小(字符串,包括’\0’后的大小),而strlen计算的是字符串实际的长度(字符串不计算’\0’);
  • 数组做sizeof的参数不退化,传递给strlen就退化为指针。

C语言中几种类型所占字节数

C语言中各类型变量所占字节数的问题。C标准并没有具体给出规定哪个基本类型应该是多少个字节数,其在内存中所占用的字节数与所选择的操作系统、编译器有关。但是,在long、int、char等数据类型中,long 类型整数的长度不能短于 int 类型, short 类型整数的长度不能短于 int 类型。(最简单的方法就是在你当前使用的开发环境中,用sizeof查看一下)

volatile关键字的作用?

volatile 关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。声明时语法:volatile int varName; 当要求使用 volatile 声明的变量的值的时候,系统总是重新从它所在的内存读取数据,即使它前面的指令刚刚从该处读取过数据。而且读取的数据立刻被保存。

volatile用在如下的几个地方:

  1. 中断服务程序中修改的供其它程序检测的变量需要加volatile;
  2. 多任务环境下各任务间共享的标志应该加volatile;
  3. 存储器映射的硬件寄存器通常也要加volatile说明,因为每次对它的读写都可能由不同意义;

printf格式化字符输出对应解释

printf格式字符

打印格式对应解释
%cchar,字符型
%dint,有符号整型
%hdshort int,短整型
%ldlong,表示长整型
%huunsigned short,无符号短整型
%o无符号八进制整数
%u无符号十进制整数
%x,%X无符号十六进制整数,小写的x输出为小写,大写的X输出为大写
%ffloat,单精度浮点数
%lfdouble,双精度浮点数
%e,%E科学计数法表示的数字
%schar*,输出字符串(以’\0’结束)
%p指针,以十六进制输出结果

printf 控制符说明

字符含义
-有-表示左对齐输出,如省略表示右对齐输出
0有0表示指定空位填0,如省略表示指定空位不填
m.nm指域宽,即对应的输出项在输出设备上所占的字符数;n指精度,用于说明输出的实型数的小数位数,未指定n时,隐含的精度为n=6位
l,hl表示long类型,h表示short类型

&&和&、||和|有什么区别

  • &和|对操作数进行求值运算,&&和||只是判断逻辑关系;
  • &&和||在在判断左侧操作数就能确定结果的情况下就不再对右侧操作数求值(&&和||会出现短路效应)。

数组

一维数组初始化

1. 给数组中的所有的元素赋值

int arr[6] = {1,2,3,4,5,6};

把要初始化的数值放在一个花括号内,从左到右把值赋值给相应的下标;初始化的时候,使用逗号隔开,不是使用分号。需要注意的是,初始化的时候,初始列表中值的个数不能超过数组的长度,否则会报错。

2. 数组中的部分元素进行赋值

int arr[6] = {1,2,3};

上面代码初始化的方式是,把数组的前三个成员分别赋值为1、2、3,后面没有初始化的成员自动赋值为0;**需要注意的是,**如果想要把定义的一个数组初始值都设置为0,直接写 int arr[6] = {};是错误的,在c语言中没有这种初始化的语法。如果直接写int arr[6];表示的是定义一个含有六个整型变量的数组,并没有初始化,把整个数组的值初始化为零的正确写法为 int arr[6] = {0};

3.定义时不指定数组的长度,但必须要进行初始化

int arr[] = {1,2,3,4,5,6};

此种初始化方式,必须要有初始化的元素,初始化列表中元素的个数就是数组的长度。如果定义数组时不初始化,那么省略数组长度就是语法错误,即int arr[];是错误的。

二维数组初始化

1.数组中的成员全部赋值

int arr1[3][4] = {{1,2,3,4}, {5,6,7,8},{9,10,11,12}};
int arr2[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};

给一个二维数组初始化可以采用arr1分段赋值的形式,也可以采用arr2连续赋值的形式。

2.部分赋值

int arr[3][4] = {1,2,3,4};

此种赋值,即二维数组中的第一行赋值为1、2、3、4,其余成员的值为零。即,二维数组也是按照初始列表中给出的值进行依次赋值,没有给出的成员,默认赋值为零。

int arr[3][4] = {{1},{2},{3}}

在分段赋值的方式中,每一个行相当于一个一维数组,初始化的方式和一维数组相同,未给出的值默认初始化为零。

int arr[3][4] = {0};

数组全部成员初始化为零。

int arr[][4] = {1,2,3,4,5,6,7,8,9,10,11,12};

如果已知二维数组中的全部数值,第一维的长度可以不写,系统可以默认计算出它的第一维度,第二维度必须要写。

C语言中,定义数组a,那么a和&a有什么区别?

  • 数组名a表示数组的首地址,和&a[0]的地址相同,而&a是数组指针;
  • 使用sizeof(a)计算的是数组a占用的内存,而sizeof(&a)是指针的大小;
  • 使用数组对指针进行赋值时, int* ptr1 = (int*)(&a+1)表示的是ptr初始化的值为数组a的首地址加上整个数组的长度,int* ptr2 = (int*)(a+1)表示的是ptr的初始值为数组a的首地址加上一个int类型数组的长度;如果 int a[3] = {1,2,3}; 那么 *(ptr1-1) = 3,*ptr2 = a[1] = 2。

字符数组与字符串

字符数组与字符串区别?

在C语言中,没有字符串类型的数据结构,字符串实际上是以’\0’结尾的一维char数组,所以字符串一点是字符数组,字符数组不一定是字符串。如下面的例子:

char s1[] = {'h','e','l','l','o'};
char s2[] = {'h','e','l','l','o', '\0'};

其中的s1是字符数组,s2是一个字符串。再如下面字符串:

char s3[] = {'h','e','l','l','o', '\0','w','o','r','l','d','\0'};
printf("%s\n", s3);

输出结果为 hello,s3的长度为12,但是对于字符串而已,遇到第一个\0以后,后面的字符直接舍弃,所以输出为 hello。

字符串的初始化

方式1:

char s1[] = {'h','e','l','l','o', '\0'};
char s2[100] = {'h','e','l','l','o'};

如果定义的字符数组,不指定长度,那么定义数组的最后一个元素一定要以\0结束,如字符串s1;如果定义了字符数组的长度,那么字符串的长度一定要小于字符数组的长度,系统会默认把缺少的值设置为\0,如字符串s2。

方式2;

char s3[] = {"hello"};
char s4[] = "hello";

采用这种方式,系统会在结尾自动补充\0,所以数组s3,s4的实际长度为6。下面的这种方式进行初始化字符串是错误的。

char s5[];
s5 = "hello";

方式3:

char* s6 = "hello";
char* s7;
s7 = "hello";

可以使用指针变量初始化字符串,可以在定义时直接初始化,可以先定义后赋值。由于定义的字符指针变量并没有确定指向字符串的长度,所以可以进行多次赋值,但是定义的字符数组,有了确定的内存,所以只可以通过下标修改某个字符的值。

Cadence 17.4 PSpice仿真555定时器输出方波 这里利用555定时器组成多谐振荡器产生1Hz的方波并用PSpice仿真其输出的方波波形。555定时器是一种广泛应用的中规模集成电路。根据其内部组成的不同,可分为双极型(555B)和CMOS型(555C)两类。两种类型的定时器各有所长。双极型定时器具有较大的驱动能力,其输出电流可达200mA,可直接驱动发光二级管、扬声器、继电器等负载。而CMOS型定时器的输入阻抗高、功耗低。 阅读详情

相关推荐

常见的AXI总线仲裁器概述-AXI协议理解(一)

SoC 设计广泛采用共享总线式的片上通信,其中的仲裁器是共享总线的关键技术之一。AMBA AXI 总线协议以高性能、高频率的系统设计为目标,适合高带宽、低延迟的系统设计,可以达到高频率的操作而不需要复杂的总线桥,满足众多部件的接口要求,具备高度灵活的互联结构,并且向后兼容 AHB 和 APB 接口。

Paul 安的博客 1万+

C语言:字符串超过指定长度仍然能运行的原因

在你的代码中,你声明了一个二维字符数组 b,其中第一个维度没有指定大小,因此编译器会根据提供的初始化值自动计算大小。在第一个字符串 “nbbbsbnfmsdnms” 中有 14 个字符,超过了指定的 10 个字符的大小。因此,虽然你的数组初始化时越界了,但编译器会默默地忽略超出范围的部分,因此不会报错。语句会打印出 b[0][0] 的值,即数组中的第一个字符 ‘n’。在 C 语言中,如果数组初始化时提供的初始值长度超过了指定的数组大小,编译器会默默地忽略超出范围的部分,而不会报错。但是还是可以运行的。

knighthood2001 1226

LTE信令流程实战:从Attach到Service Request的完整解析(附常见问题排查)

本文深入解析LTE信令流程中的Attach和Service Request关键环节,提供从基础原理到实战排查的完整指南。涵盖鉴权、承载建立等核心步骤,分析常见故障模式及优化方案,并附赠信令跟踪工具使用技巧,助力通信工程师提升网络运维效率。

alpha的博客 316

C语言知识-零零散散(三)

C语言知识-零零散散(三) while循环中的scanf函数 首先给出下面的源码: #include<stdio.h> #include<stdlib.h> int main() { char c = 0; int i=0; while (1) { scanf("%c", &c); i++; printf("i = %d\n", i); if(i == 5){ break; } } system("pause"); retur

EngineerHe的博客 1117

CNN经典论文(一)LeNet

Gradient-Based Learning Applied to Document Recognition(梯度学习在文档识别中的应用) Yann LeCun, Leon Bottou, Yoshua Bengio, and Patrick Haffner 发表时间:December 1998 期刊:Proceedings of the IEEE 影响:世界上第一个卷积神经网络 论文地址:Gradient-Based Learning Applied to Document Recognition

loveling丶的博客 3597

小米手机Magisk解锁与Root完整指南:从Bootloader到模块管理

Android系统Root权限获取是设备深度定制的核心技术之一,其核心原理在于通过修改系统启动流程获取超级用户权限。Systemless Root技术通过动态挂载修改,在不触碰系统分区的前提下实现功能注入,既保证了系统完整性,又能绕过完整性检测。这一技术为设备带来了极高的可定制性,用户可以通过模块化方式增强系统功能、修改UI界面或启用隐藏特性。在小米手机生态中,由于官方提供了完整的Bootloader解锁通道,结合Magisk的无系统修改Root方案,使得安全可控的深度定制成为可能。本文聚焦于Bootloa

weixin_29164185的博客 333

C语言知识-零零散散(二)

C语言知识-零零散散(二) 字符串处理函数 gets和puts函数 /* 功能:从输入缓冲区中读取一个字符串存储到字符指针变量 str 所指向的内存空间。 参数:char *str,str是一个指针变量名,也可以一个字符数组名。 返回值:读入成功,返回和参数str相同的指针;失败,返回NULL指针。 */ char *gets(char *str); /* 功能:输出字符串。 参数:s是要输出的字符串,可以字符指针变量名、字符数组名、或者是字符常量。 返回值:成功,该函数返回一个非负值,如果发生错误则返回

EngineerHe的博客 1073

ESP32-S3射频测试与全球认证全栈实践指南

功率谱密度(PSD)和发射功率等级是无线通信设备射频合规的核心基础概念,其物理层原理直接决定自适应测试、阻塞容限及多国认证的通过路径。PSD ≥10 dBm/MHz触发强制性自适应测试,需验证LBT机制与跳频鲁棒性;而16级可编程发射功率等级(-24 dBm至+20 dBm)则为功耗、覆盖与法规平衡提供工程调控维度。该能力广泛应用于低功耗蓝牙IoT终端、智能家居网关及工业无线传感器等场景,尤其在ESP32-S3平台中,需结合eFuse校准、Sigma工具链与QuickTrack认证策略实现从实验室调试到量产

weixin_34945060的博客 285

【C/C++】C语言特性总结

已经有大约半年的时间没有碰C语言了,当时学习的时候记录了很多的笔记,但是都是特别混乱,后悔那个时候,不懂得写博客,这里凭借记忆和零零散散的笔记记录,尝试系统性地复习一下C语言。 之前都是在Windows环境下学习,这次把重心放在Linux环境下,这次的复习源于基础,但是要高于基础。 文章目录工具gcc编译器VS2019C语言编译过程C语言代码主体必要内容C语言数据类型关键字常量变量进制表示s...

明月沉江春雾晓 4万+

玩转Docker小游戏项目系列: Docker部署红心纸牌网页小游戏

玩转Docker小游戏项目系列: Docker部署红心纸牌网页小游戏

jks212454的博客 420

uniapp - 实现手机端H5网页直播功能效果,拿到后端推流地址或播放资源后进行前端的流畅播放和画面展示功能,uniapp实时推流/拉流直播系统详细教程(提供完整示例代码,一键复制开箱即用!)

uniapp,h5网页,手机端H5网页,uniapp h5直播功能页面,uniapp直播实时推送显示,uniapp h5直播怎么做,怎么使用uniapp去实现移动端手机H5直播,h5 vue+uniapp怎么做直播,uniapp中使用videojs构建H5直播播放器,uniappH5端怎么实现直播推流,uniapp如何实现直播,直播聊天功能,h5平台端直播用什么插件,uniapp手机网页直播用什么组件插件播放器,uniapp手机H5直播播放器详细教程,直播项目,怎么使用vue+uniapp怎么做H5实时直播

✅ 精选推荐文章 8792

C语言知识-零零散散(四)

C语言知识-零零散散(四) 手动实现strcmp函数 strcmp函数是用于比较两个字符串的大小,如果相等返回0,如果第一个字符串比较大返回1,否则返回-1。 int mystrcmp(const char* str1, const char* str2){ // 如果发现其中一个字符等于'\0',或者两个字符不相等,结束循环 while(*str1 && *str2 && (*str1 == *str2)){ str1++; // 地址自加,指向下一个

EngineerHe的博客 886

基于MATLAB的变分模态分解(VMD)算法详解

变分模态分解(VMD)是一种先进的信号处理方法,通过变分框架将复杂信号分解为多个模态分量。相比传统经验模态分解(EMD),VMD具有坚实的数学基础,能有效抑制模态混叠和端点效应。其核心思想是将信号分解转化为约束优化问题,通过交替方向乘子法迭代求解各模态的中心频率和带宽。VMD在机械故障诊断、生物医学信号处理等领域展现出优越性能,尤其适合处理非平稳非线性信号。该算法通过严格的数学模型实现自适应频谱优化,为信号分析提供了更可靠的工具。

qq_42212808的博客 735

基于C99规范,最全C语言预处理知识总结

本文是基于C99标准,总结C语言预处理的知识点以及其相关用法和问题剖析。

嵌入式软件实战派 2812

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

初学C语言一星期

初学C语言一周的知识点总结和心得,加油!

学习C++的小陈同学 1200

零零散散的一些知识点

20.在C语言中,库函数是预先编写好的、可重用的函数代码,存储在标准库或第三方库中,开发者可以直接调用它们来实现常见任务,无需从头编写代码。,这里就是将已有的变量i的值重新设置为1,然后开始第二个循环。36. 想生成在一段范围内的随机数,只需要调用time函数,并让rand%上范围,就可以生成在这个范围内的随机数。负整数的原码只将首位符号位改变为1,反码是原码的符号位不变,其他位按位取反,补码是反码加1。因此,在第一个循环中,i从0开始递增到4(循环结束条件为i<4,所以循环结束后i=4)。

2501_92864961的博客 731

复习C语言基本知识点,重新巩固基本知识

C语言基本知识点回顾

yhm12580的博客 269

C语言复习tips(一)

C语言复习tips(二) 以下知识点是我在学习C语言课程的过程中零零散散地记录下来的,分三篇博客呈现出来,认为有用的小伙伴可以点赞收藏哦❤️蟹蟹~~???????? 18)调用函数并不一定要求包括分号,只有作为函数调用语句才需要有分号,如果作为函数表达式或函数参数,函数调用是不必有分号的。 19)用数组名作为函数实参时,不是把数组元素的值传递给实参,而是把实参数组的首元素的地址传递给形参数组。       1>这样指定形参数组的大小不起

weixin_45883147的博客 191

【C语言】——C语言概述

前言     之前在数据结构和软考中都涉及到C语言的学习,只不是零零散散,不系统。但是这次考研让我有幸地系统学习C这门神奇的语言。 发展     C语言的发展,也是有一段历史的,来画鱼骨图以帮助记忆。     不难看出,C语言是在B语言的基础上发展的,但是追根溯源,ALGOL60才是C语言的老祖宗,经过一系列语言的发展最终才形成了C语言。而它产生的目的就为了解决低级

你若盛开,清风自来 1827

【李肯C语言小册.必读】为什么有这份专栏?解决什么问题?有哪些价值?是否值得订阅?

21天学习C语言

一个专注于嵌入式IoT领域的架构师,深耕IoT领域多年,深度掌握IoT领域的相关技术栈,包括但不限于RTOS内核的实现及其移植、硬件驱动移植开发、网络通讯协议开发、编译构建原理及其实现、底层汇编及编译原理、编译优化及代码重构、嵌入式IoT系统的架构设计等。 3475

c语言读出的字符串都是烫怎么办,C语言出现“烫”字符的内存分析

好像这里看不到图片,我的原文发表在QQ空间了,http://user.qzone.qq.com/247975076/2,可以看到原文近来看网上好评颇高的C++反汇编与逆向技术揭秘一书,结合以前看过的零零散散的知识,对比印证,收获颇多,联想起大学时候刚学C语言时候碰到输出字符串时偶尔会输出‘烫’字符的异常情况时百思不得其解的情况,于是就写了这个小文章,希望可以解开一些C语言初学者的疑惑。几个基础知识...

weixin_42128015的博客 3017

C/C++ 语言 零碎知识点的总结(1)干货

C/C++ 语言 零碎知识点的总结(1)   在大学近三年的学习中,零零散散的遇到过较多的知识和问题,但时间过长之后也会有所遗忘,为了克服这个问题,想到可以用博客来做记录,方便模糊的时候回头再学习。 首先,看代码: #include<stdio.h> int main(void){ char side_a[] = "Side A"; char dont[]= { 'w','o','w','!'}; char side_b[]="Side B";

~晨曦静竹~的博客 5361

为什么说指针是c语言的灵魂?

我攻克这个难关,花了好几年时间,因为它不像单片机的问题,网上都有答案,也有例程参考,这种问题,是开发经验的问题,网上找不到资料,有也只是零零散散的。工作6,7年以后,独立做了一些复杂的项目,有物联网网关,有Ble产品,研究过协议栈和模块厂的SDK,也见过很多同事写的代码,对指针又有了新的理解。刚做开发的前两三年,我总是感觉自己写的程序,不够专业高大上,很多程序都过度使用指针,看起来更复杂显得专业点,现在回看那程序:真傻杯,脱裤子放屁。你可以简单理解成,就像人没有灵魂,废了,c语言没有指针,也废了。

无际单片机编程 1179

C语言复习tips(二)

C语言复习tips(三) 以下知识点是我在学习C语言课程的过程中零零散散地记录下来的,分三次呈现出来,认为有用的小伙伴可以点赞收藏哦❤️问题请在评论区指出。蟹蟹~~???????? 43)宏定义分为普通宏定义和带参数的宏定义       //普通宏       #define Pi (3.1415926)       //带参

weixin_45883147的博客 174

关于C语言 指针的理解(一)

C语言的指针一些运用的情况从大一开始接触C语言算起,零零散散地感觉上手了不少。但是有时候遇到用指针变量的时候会出现奇怪的错误。所以,想研究一下指针变量的各种情况下的变化和可能出现的错误。这是我第一次写博客,可能有些表达不够清晰的地方,请见谅。指针保存的是地址,而地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存地址。自己写了接近一年的编程,个人感觉指针有个很方...

gdutRex的博客 342

C语言求x的y次方,自定义函数,自己的算法

我是一名高二中学生,初中时接触电脑,非常酷爱电脑技术,自己百度学习了有两年多了,编程语言也零零散散的学习了一点,想在大学学习计算机专业,所以现在准备系统的学习C语言,并在博客中与大家分享我学习中的心得与思路。希望大牛路过的时候指点指点。可以说是第N次学习C语言了,都是学到数组和函数这里停止了,这次下定了决心要学完C语言,不光要学完,还要学好下面是利用自定义函数写的一个模仿pow()函数工作的...

weixin_33841722的博客 6880

蓝桥杯c语言大一的知识够了吗,参加蓝桥杯后的感受以及个人总结

二零一九年三月二十四日,我有幸参加了第十届蓝桥杯编程比赛。比赛结束后,一直想写点什么,却又不知道从何处动笔。只能遍码字遍想了。首先,我很早就有用文档记录生活的习惯,不过将其写至博客上,还是头一次。所以,今晚上所幸借优快云宝地一用,开始写点技术博客和一点生活的感悟。另外还希望,如果能找到知音亦或有相同困恼的朋友,我将高兴与你结识。其实,我并不是计算机专业的,只是生物本科在读,本来专业是与计算机毫无...

weixin_31005543的博客 5302

小王入门C语言

编程是一种逻辑性十分强的技能,所以应该具有一个良好的逻辑思维能力,这是需要持续训练的,比如数学能力,逻辑推理能力,还有抽象事物的理解能力,所以在这些方面需要看一些相关书籍或者在有基础的前提之下去刷题!其次就是前车之鉴也是很有必要的,不懂就问,多去看看别人的文章或者多去询问别人的意见对自己的学习道路也是会很有帮助的。大家好,我是一位热爱编程的科班生,虽然已经学习了两年的C/C++编程知识,但个人感觉知识框架几乎是零零散散的,所以我想通过这样的方式从基础开始梳理我所学习的知识框架,让自己的能力有所提升。

m0_63703622的博客 310
上一篇: leetcode 98.验证二叉搜索树
下一篇: C语言知识-零零散散(二)
黑暗主宰
博客等级 码龄9年 72粉丝 169原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值