
C/C++学习
机器人开发者
从事机器人、自动驾驶开发
展开
-
C学习——sizeof和strlen的区别
sizeof和strlen的区别例1:char ss[100]=”0123456789”; Sizeof(ss)结果为100,ss表示在内存中预分配的大小,100*1; Strlent(ss)结果为10,它的内部实现是用一个循环计算字符串的长度,直到”\0”为止。例2:int ss[100]=”0123456789”; Sizeof(s转载 2013-09-10 20:15:11 · 784 阅读 · 0 评论 -
用异或交换两个整数的陷阱
前面我们谈到了,可用通过异或运算交换两个数,而不需要任何的中间变量。 如下面:void exchange(int &a, int &b){ a ^= b; b ^= a; a ^= b;}然而,这里面却存在着一个非常隐蔽的陷阱。通常我们在对数组进行操作的时候,会交换数组中的两个元素,如exchang(转载 2013-11-01 13:06:03 · 822 阅读 · 0 评论 -
float变量与零值的比较 .
float和double型变量都是不精确的,所以不可以使用“==”或“!=”来比较float变量与数字,应使用“>=”或“正确写法:const float NORM = 0.00001;float flag = 0.0;if((flag>=-NORM) && (flag{printf("flag equal zero.\n", flag);}elseprintf转载 2014-02-18 14:16:02 · 2026 阅读 · 0 评论 -
memset
功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作 用 法: void *memset(void *s, char ch, unsigned n); 程序例: #include #include #include int main(void) {转载 2013-06-10 15:03:52 · 695 阅读 · 0 评论 -
int a; int* a; int** a; int (*a)[10]; int (*a)(int)区别
a) int a;表示一个内存空间,这个空间用来存放一个整数(int);b) int* a;表示一个内存空间,这个空间用来存放一个指针,这个指针指向一个存放整数的空间,即a)中提到的空间;c) int** a;表示一个内存空间,这个空间用来存放一个指针,这个指针指向一个存放指针的空间,并且指向的这个空间中的指针,指向一个整数。也简单的说,指向了一个b)中提到的空间;d) int (转载 2013-07-31 00:20:50 · 1610 阅读 · 1 评论 -
FILE结构
用VC 控制台程序实现Word 的排版功能,输入文件名读取小于64k 的英文文本,然后对英文文本进行匀齐排版,最后结果为:一行70个字符,左右两边分别空4 个字符,长单词不能折断,每行必须对齐,单词中间插入空格。均匀插入。注意:1、不能用STL库,类似文件流fstream都不允许用 2、不能用sdk,mfc,windows api 3、用最基本的c/c++实转载 2013-06-09 23:18:24 · 782 阅读 · 0 评论 -
munmap
munmap(解除内存映射) 相关函数 mmap 表头文件 #include #include 定义函数 int munmap(void *start,size_t length); 函数说明 munmap()用来取消参数start所指的映射内存起始地址,参数length则是欲取消的内存大小。当进程结束或利用原创 2013-06-10 15:20:00 · 1161 阅读 · 0 评论 -
C学习——volatile的用法
volatile 影响编译器编译的结果,指出,volatile变量是随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化,以免出错,(VC++在产生release版可执行码时会进行编译优化,加volatile关键字的变量有关的运算,将不进行编译优化。)。例如: volatile int i=10; int j = i; ... int k =转载 2013-09-10 20:17:00 · 625 阅读 · 0 评论 -
argc与argv
argc,argv 用命令行编译程序时有用。主函数main中变量(int argc,char *argv[ ])的含义有些编译器允许将main()的返回类型声明为void,这已不再是合法的C++main(int argc, char *argv[ ], char **env[ ])才是UNIX和Linux中的标准写法。argc: 整数,用来统计你运行程序时送给main函数的命令行参原创 2013-06-09 20:36:59 · 3410 阅读 · 0 评论 -
mmap详解
共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式, 因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次数据: 一次从输入文件到共享内存区,另一次从共享内存区到输出文件。实际上,进程之间在共享内存时,并不总是读写少量数据后就解除映射,有新的通信时,再重新建立共享内存区域。而是保持共转载 2013-06-10 14:39:40 · 872 阅读 · 0 评论 -
a为数组名,a与&a的区别
数组a与&a原创 2014-02-18 23:23:36 · 1241 阅读 · 0 评论 -
C学习——指针
1、指针a) int a;表示一个内存空间,这个空间用来存放一个整数(int);b) int* a;表示一个内存空间,这个空间用来存放一个指针,这个指针指向一个存放整数的空间,即a)中提到的空间;c) int** a;表示一个内存空间,这个空间用来存放一个指针,这个指针指向一个存放指针的空间,并且指向的这个空间中的指针,指向一个整数。也简单的说,指向了一个b)中提到的空间;d转载 2013-09-10 20:13:55 · 819 阅读 · 0 评论 -
perror函数
perror头文件#includestdio.h>#include注意不可以掉了#include这个头文件,perror是包含在这个文件里的perror表头文件完善版定义函数void perror(const char *s); perror ("open_port");函数说明perror( ) 用来将上一个函数发生错误的原因输出到原创 2013-06-09 21:15:12 · 13706 阅读 · 4 评论