作者:Albert.Wen
添加时间:2017-12-13 14:22:52
修改时间:2024-11-14 00:08:12
分类:
13.C/C++/Rust
编辑
以前一直有种误解:
二维数组的是数组的数组,所以数组的首地址是指向第一个元素指针,而这个元素又是一个数组,所以把数组首地址理解为 指向指针的指针。
作者:Albert.Wen
添加时间:2017-10-26 18:39:36
修改时间:2024-10-30 10:53:50
分类:
13.C/C++/Rust
编辑
C 编程中,经常需要操作的内存可分为下面几个类别:
- 堆栈区(stack):由编译器自动分配与释放,存放函数的参数值,局部变量,临时变量等等,它们获取的方式都是由编译器自动执行的
- 堆区(heap):一般由程序员分配与释放,基程序员不释放,程序结束时可能由操作系统回收(C/C++没有此等回收机制,Java/C#有),注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。
- 全局区(静态区)(static):全局变量和静态变量的存储是放在一块儿的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后由系统释放。
- 文字常量区:常量字符串是放在这里的,程序结束后由系统释放。
- 程序代码区:存放函数体的二进制代码。
作者:Albert.Wen
添加时间:2016-04-16 12:48:48
修改时间:2024-11-16 16:50:47
分类:
13.C/C++/Rust
编辑
在前一小节的“改写版”例程中,像下面这样将指针指向数组的初始元素。
p = &array[0];
其实也可以写成下面这样
p = array;
对于这种写法,很多 C 语言的入门书籍是这样说明的:
在 C 中,如果在数组名后不加[],单独地只写数组名,那么此名称就表示“指向数组初始化元素的指针”。
在这里,我可以负责地告诉你,上面的说明是错误的。
作者:Albert.Wen
添加时间:2017-10-26 14:38:24
修改时间:2024-11-18 14:17:23
分类:
13.C/C++/Rust
编辑
在写网络程序的时候,建立TCP socket:
sock = socket(PF_INET, SOCK_STREAM, 0);
然后再绑定本地地址或连接远程地址时需要初始化sockaddr_in结构,其中指定address family时一般设置问AF_INET,即使用IP。
作者:Albert.Wen
添加时间:2019-09-10 23:22:11
修改时间:2024-11-18 23:25:21
分类:
13.C/C++/Rust
编辑
Linux 错误码大全(errno-base.h 和 errno.h)
作者:Albert.Wen
添加时间:2016-04-02 15:57:29
修改时间:2024-10-30 10:53:56
分类:
13.C/C++/Rust
编辑
作者:Albert.Wen
添加时间:2014-04-09 18:16:00
修改时间:2024-11-21 14:04:24
分类:
13.C/C++/Rust
编辑
Linux下文件的类型是不依赖于其后缀名的,但一般来讲:
- .o 是目标文件,相当于Windows中的.obj文件
- .so 为共享库,是shared object,用于动态连接的,和dll差不多
- .a 为静态库,是好多个.o合在一起,用于静态连接
- .la 为libtool自动生成的一些共享库,vi编辑查看,主要记录了一些配置信息。可以用如下命令查看*.la文件的格式 $file *.la
作者:Albert.Wen
添加时间:2017-10-27 09:50:26
修改时间:2024-11-09 12:33:48
分类:
13.C/C++/Rust
编辑
一、什么是信号量
为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行线程访问代码的临界区域。临界区域是指执行数据更新的代码需要独占式地执行。而信号量就可以提供这样的一种访问机制,让一个临界区同一时间只有一个线程在访问它,也就是说信号量是用来调协进程对共享资源的访问的。
作者:Albert.Wen
添加时间:2016-04-05 17:37:13
修改时间:2024-11-18 22:03:06
分类:
13.C/C++/Rust
编辑
二维数组相当于一个特殊的一维数组里面每个元素又是一个一维数组,例如:int a[3][3],可以看成一个3行的一个列数组,每一列的元素又是一个长度为3的数组,数组名的一个特殊一维数组的首地址,如下:
作者:Albert.Wen
添加时间:2016-04-13 00:23:28
修改时间:2024-11-12 15:22:38
分类:
13.C/C++/Rust
编辑
一、什么是空指针?
空指针 是一个特殊的指针值。
空指针 是指可以确保没有向任何一个对象的指针。通常使用宏定义 NULL 来表示空指针常量值。