摘要:
C/C++程序编译的过程 预处理,展开头文件,宏定义,条件编译处理等。通过gcc -E source.c -o source.i或者cpp source.c生成。 编译。这里是一个狭义的编译意义,指的是将预处理后的文件翻译成汇编代码的过程。通过gcc -S source.i生成。默认生成source 阅读全文
摘要:
输入输出 (1) getchar() & putchar() 函数: 读写字符。 (2) scanf() 和 printf() 函数:根据提供的format来转换输入为其他数据类型,并根据提供的format产生输出。可以通过空格符输入多个数据。 文件读写 阅读全文
摘要:
结构体 数组允许定义可存储相同类型数据项的变量,而结构体是C编程中另一种用户自定义的可用的数据类型,它允许用户可以存储不同类型的数据项。 struct 语句的格式如下: 其中,structure tag 是可选的。在结构定义的末尾,最后一个分号之前,还可以指定一个或多个结构变量,这是可选的。 下面是 阅读全文
摘要:
在C语言中,字符串实际上是使用null字符'\0' 终止的一维字符数组。因此,一个以null结尾的字符串,包含了组成字符串的字符。 C编译器会在初始化数组时,自动把'\0'放在字符串的末尾。所以不需要手动添加。 下面例子是一些常用的字符串函数的用法。 阅读全文
摘要:
函数指针 函数指针是指向函数的指针变量。 通常我们说的指针变量是指向一个整型、字符型或数组等变量,而函数指针是指向函数。 函数指针可以像一般函数一样,用于调用函数、传递参数。 回调涵数 函数指针变量可以作为某个函数的参数来使用的,回调函数就是一个通过函数指针调用的函数。 简单讲:回调函数是由别人的函 阅读全文
摘要:
下面从3个代码例子分别讲述以下2个知识点: (1) 传递指针给函数(参数类型为指针) (2) 返回指针的函数(返回类型为指针) 阅读全文
摘要:
对于*p,[p = &a]和[*p = a]的区别详解 (1) p=&a就是用a的地址对p赋值,&p不改变,变的是p (2) *p=a就是把p所指向的那一内存空间的值赋值为a,&p和p都不改变,变的是p所指向的那一内存空间的值 代码分析: 阅读全文
摘要:
指针是一个变量,其值为另一个变量的地址。 所有指针的值的实际数据类型,不管是整型、浮点型、字符型,还是其他的数据类型,都是一样的,都是一个代表内存地址的长的十六进制数。 下面从4个代码例子分别讲述以下4个知识点: (1) 指针概念 (2) 数组中指针的递增/递减 (3) 指针数组&数组指针 (4) 阅读全文