C/C++
文章平均质量分 58
海鲜小王子
记录点滴,SHU,小硕,EE
展开
-
如何调试int argc,char** argv
方法一:在CMD下,运行.exe,后面跟参数原创 2014-05-03 17:10:57 · 1859 阅读 · 0 评论 -
C语言结构体之位域
有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域, 并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。 这样就可以把几个不同的对象用一个字节的二进原创 2014-05-03 17:14:13 · 878 阅读 · 0 评论 -
C/C++
inta[3]; // 一维数组charb[3][5]; // 二维数组 floatc[3][5][7]; // 三维数组原创 2014-05-30 21:41:55 · 606 阅读 · 0 评论 -
指针的大小到底是由谁决定?是多少?
应该说这是一个非常基础的问题,教科书上说指针大小和机器字长相同,即32位机指针长度为4字节!但是对不对呢?为什么是这样? 搜了一下相关资料。。。居然发现回答不统一,很多人也同样是糊里糊涂。下面对这个问题做一个系统的整理和分析: 首先,介绍几个基本概念:(主要摘自百度百科) 字长:在同一时间中处理二进制数的位数叫字长。通常称处理字长为8位数据的CPU叫8位CPU转载 2014-06-01 16:24:10 · 1459 阅读 · 1 评论 -
变量初始化
在C语言里,全局变量如果不初始化的话,默认为0,也就是说在全局空间里:int x =0; 跟 int x; 的效果看起来是一样的。但其实这里面的差别很大,强烈建议大家所有的全局变量都要初始化,他们的主要差别如下: 编译器在编译的时候针对这两种情况会产生两种符号放在目标文件的符号表中,对于初始化的,叫强符号,未初始化的,叫弱符号。连接器在连接目标文件转载 2014-06-01 16:25:05 · 785 阅读 · 0 评论 -
未初始化的指针
1.我们定义了一个指针,一定要初始化,比如 int* a,没有初始化时,a的指向是不明确的。若它指向非法地址,这时的操作会报异常;若它指向一个合法地址,这是非常危险的,因为这样可能更改一个正在使用的数值。若在MCU中,指针指向非法地址,程序会跑飞。2.关于NULL指针,有时我们会写一个函数,这个函数返回一个值,但有时这个值可能会不存在,那么就需要返回一个代表这个值不存在的值。这样,就会造成一个原创 2015-10-28 12:49:14 · 3883 阅读 · 0 评论 -
可变参数函数——以printf为例子
一. 调用形式void foo(int argv1, char argv2, …) 在参数表的末尾给出省略号,表明这个函数的参数是可变的二. 工作原理进程在调用函数时,会将函数参数压入用户栈,压入的顺序是从参数表右端开始,从右至左的压栈顺序支持了可变参数的实现。左边的参数在低地址,右边的参数在高地址。进入函数后,以左边的参数为线索,可透过指针依次访问右边省略掉的参数。 可变参数原创 2016-12-18 23:34:36 · 982 阅读 · 0 评论 -
C++项目——基于QT的电梯仿真系统
执行过程创建MainWidget类,它初始化界面当我们按下“开始”按钮时,SimuThread类构造,绑定信号和槽。在SimuThread类构造中,又构造了building类和elevator类SimuThread类继承了Simulation,调用Simulation类的run方法,开始Simulation中的主流程乘客初始都在1楼,要去随机楼层,电梯初始在随机楼层不管电梯现在是什么原创 2017-03-05 20:58:29 · 3644 阅读 · 0 评论 -
C++学习笔记
1.//将字符串s全变为大写for(char &i : s) { i = toupper(i);}范围for语句是C++11标准,用g++编译时,需要加上-std=c++11,不然会提示range-based ‘for’ loops are not allowed in C++98 mode 范围for循环相对于传统for循环和while循环的优点是,我们无需关心循环边界原创 2017-04-24 22:14:07 · 304 阅读 · 0 评论