随笔分类 - C
摘要:引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多 为什么有了进程的概念后,还要再引入线程呢?使用
阅读全文
摘要:void的含义 void即“无类型”,void *则为“无类型指针”,可以指向任何数据类型。 void指针使用规范 ①void指针可以指向任意类型的数据,亦即可用任意数据类型的指针对void指针赋值。例如: int *pint; void *pvoid; pvoid = pint; /* 不过不能
阅读全文
摘要://测试截断 #include <stdio.h> int main() { int a = 0x80000001; unsigned int b = 0x80000001; printf("有符号数a的值是%d\n", a); printf("无符号数b的值是%x\n", b); //有符号数与无
阅读全文
摘要://测试移位 #include int main() { //测试存储数据的方式:补码 int a = -1; unsigned int b = 1U; printf("有符号数a的值是%x\n", a); printf("无符号数b的值是%x\n", b); //测试原码左移 a = a > 3; b = b >> 3; ...
阅读全文
摘要:成员a的偏移量就不用看了,上面有说每一个结构体第一个成员的偏移量都为0;但他的大小是1,也就是成员b的偏移量,成员b的大小是4,1不是4的倍数,所以a的大小1应该加上3,就是4,成员3的偏移量是8,成员c的大小是8,成员c的偏移量是成员c大小的倍数,就不用增加大小,成员d的偏移量是16,成员d的大小
阅读全文
摘要:结构体的大小是20,在对指向结构体a的指针p做自减后,他的地址变化量为20; 对指向char型数据的指针做自减后,地址变化量为1; 对二级指针做自减后,地址变化量为4,因为二级指针p2指向的是p1,变化量为p1的大小(32位系统);
阅读全文
摘要:先说左移,左移就是把一个数的所有位都向左移动若干位,在C中用<<运算符.例如:int i = 1;i = i << 2; //把i里的值左移2位也就是说,1的2进制是000...0001(这里1前面0的个数和int的位数有关,32位机器,gcc里有31个0),左移2位之后变成 000...0100,
阅读全文
摘要:来源:https://blog.csdn.net/LF_2016/article/details/51930792 一、为什么使用命名空间 一个大型的工程往往是由若干个人独立完成的,不同的人分别完成不同的部分,最后再组合成一个完整的程序。由于各个头文件是由不同的人设计的,有可能在不同的头文件中用了相
阅读全文
摘要:百度知道: #ifdef __cplusplus #ifdef __cplusplus 倒底是什么意思? 时常在cpp的代码之中看到这样的代码: #ifdef __cplusplus extern "C" { #endif //一段代码 #ifdef __cplusplus } #endif 这样的
阅读全文
摘要:C语言中没有输入输出语句,所有的输入输出功能都用 ANSI C提供的一组标准库函数来实现。文件操作标准库函数有: 文件的打开操作 fopen 打开一个文件 文件的关闭操作 fclose 关闭一个文件 文件的读写操作 fgetc 从文件中读取一个字符 fputc 写一个字符到文件中去 fgets 从文
阅读全文
摘要:一般而言,对指针进行加1操作,得到的将是下一个元素的地址,一个类型为T的指针移动,是以sizeof(T)为移动单位。 a是数组首地址a[0]的地址,&a是对象(数组)首地址; a+1是数组下一个元素的地址,即a[1]; 而&a+1是下一个对象的地址,即a[5]。 sizeof(b) 是 数组的空间大
阅读全文
摘要:来源:https://www.cnblogs.com/jiangzhaowei/p/9129105.html 1. 什么是回调函数? 回调函数,光听名字就比普通函数要高大上一些,那到底什么是回调函数呢?恕我读得书少,没有在那本书上看到关于回调函数的定义。我在百度上搜了一下,发现众说纷纭,有很大一部分
阅读全文
摘要:来源:https://www.cnblogs.com/weixiaoyu/p/4371806.html 1、对于一维数组来说,数组作为函数参数传递,实际上传递了一个指向数组的指针,在c编译器中,当数组名作为函数参数时,在函数体内数组名自动退化为指针。此时调用函数时,相当于传址,而不是传值,会改变数组
阅读全文
摘要:来源:https://blog.csdn.net/jay_zhouxl/article/details/51745518 int f(int *p,char *a) { printf("p[2]=%d,*(p+2)=%d\n",p[2],*(p+2)); printf("a[2]=%c,*(a+2)
阅读全文
摘要:类型16位32 位64位 char 1 1 1 short int 2 2 2 int 2 4 4 unsigned int 2 4 4 float 4 4 4 double 8 8 8 long 4 4 8 long long 8 8 8 unsigned long 4 4 8
阅读全文
摘要:来源:https://blog.csdn.net/zhangheng837964767/article/details/33783511 关键问题点:const 属于修饰符 ,关键是看const 修饰的位置在那里1、const int *a这里const 修饰的是int,而int定义的是一个整值因此
阅读全文
摘要:来源:https://blog.csdn.net/zhouzhaoxiong1227/article/details/52026323 正则表达式(Regular Expression),又称正规表示法、常规表示法,在实际的软件开发项目中经常会被使用到。它使用单个字符串来描述、匹配并获取一系列符合某
阅读全文
摘要:来源:https://www.cnblogs.com/TanSea/p/6924177.html 说到正则表达式,大家就会想到那像火星文一样的正则表达式字符串。虽然看起来很奇怪,但是一个个都搞清楚那些东西分别表示什么意思的时候,会发现这东西其实也不难。说干就干,我们来一个个的理解。 先弄点数据 先来
阅读全文
摘要:来源:http://www.runoob.com/regexp/regexp-syntax.html 正则表达式是一种可以用于模式匹配和替换的强大工具。 正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。 正则
阅读全文
摘要:第二十六章 atexit函数允许用户“注册”在程序终止时要调用的函数:atexit(func); 在程序终止后,func函数会被自动调用 clock()函数可以计算程序运行时间 time函数返回当前的日历时间,返回类型是time_t atexit函数允许用户“注册”在程序终止时要调用的函数:atex
阅读全文
浙公网安备 33010602011771号