多维数组声明的一般形式如下:
1 | type name[size1][size2]...[sizeN]; |
如,创建一个三维数组:
1 | int threedim[5][10][4]; |
C 语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。
所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素。
1 | int a[2] = {1,2}; |
(a+i)
就代表的是 a[0+i]
的地址。
C运算符:
假设变量 A 的值为 10,变量 B 的值为 20,则:
运算符 | 描述 | 实例 |
---|---|---|
+ |
把两个操作数相加 | A + B 将得到 30 |
- |
从第一个操作数中减去第二个操作数 | A - B 将得到 -10 |
* |
把两个操作数相乘 | A*B 将得到 200 |
/ |
分子除以分母 | B / A 将得到 2 |
% |
取模运算符,整除后的余数 | B % A 将得到 0 |
++ |
自增运算符,整数值增加 1 | A++ 将得到 11 |
-- |
自减运算符,整数值减少 1 | A-- 将得到 9 |
取余运算只能针对整数,%
的两边都必须是整数,不能出现小数,否则编译器会报错。
余数可以是正数也可以是负数,由 %
左边的整数决定:
%
左边是正数,那么余数也是正数;%
左边是负数,那么余数也是负数;存储类定义 C 程序中变量/函数的范围(可见性)和生命周期。这些说明符放置在它们所修饰的类型之前。下面列出 C 程序中可用的存储类:
1 | x86_64-posix-sjlj |
POSIX
:表示可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX
)
解释
DWARF:一种带调试信息(DWARF- 2(DW2)EH)的包, 所以比一般的包尺寸大,仅支持32位系统
SJLJ:跨平台,支持32,64位系统,缺点是:运行速度稍慢,GCC不支持
SEH: 调用系统机制处理异常,支持32,64位系统,缺点是:Gcc不支持(即将支持)
网络编程有一个重要的概念 socket(套接字),应用程序可以通过它发送或接收数据,套接字允许应用程序将 I/O 插入到网络中,并与网络中的其他应用程序进行通信。
Python 提供了如下两个 socket 模块:
以下列出了 Python 网络编程的一些重要模块:
协议 | 功能用处 | 端口号 | Python 模块 |
---|---|---|---|
HTTP | 网页访问 | 80 | httplib, urllib, xmlrpclib |
NNTP | 阅读和张贴新闻文章,俗称为 帖子 | 119 | nntplib |
FTP | 文件传输 | 20 | ftplib, urllib |
SMTP | 发送邮件 | 25 | smtplib |
POP3 | 接收邮件 | 110 | poplib |
IMAP4 | 获取邮件 | 143 | imaplib |
Telnet | 命令行 | 23 | telnetlib |
Gopher | 信息查找 | 70 | gopherlib, urllib |