c
来自xinxin的我
这个作者很懒,什么都没留下…
展开
-
C语言三种基本结构
所有的编程语言都只存在这三种结构!!!顺序结构:代码按照编码顺序执行。选择结构:(分支结构)细分有单分支,双分支与多分支。单分支只有if结构,还用来做判断。双分支一般指的是if...else结构。多分支一般指的是switch结构,当然多重的if...else也可以实现,同时还是类惟逻辑尺等等编程思想。循环结构:在特定条件下要重复执行的语句。一般有步长型for,当型while,直到型do原创 2014-02-21 16:18:40 · 4355 阅读 · 0 评论 -
C语言深度解析1-内存结构
对于C语言的学习首先要搞清楚C程序在内存中的分布。提到内存大家都会头疼,我也不例外。但是为了根治这个疑难杂症,痛定思痛,纠结再纠结,蛋疼再蛋疼……在查看了很多资料,终于对内存这东西有了进一步了的了解……以下就是我的学习记录……如有错误请指正,大牛勿喷……文明看帖,努力回帖,共同进步……废话不多说 Let‘s go……1,在ceontos系统终端中#include原创 2014-03-16 00:05:16 · 1290 阅读 · 3 评论 -
辨析--数组,指针
多数的数组引用都会退化为数组第一元素的指针,就是C语言中数组和指针“等价”的基础。在C语言中只是指针算术和数组下标运算等价,指针和数组是不同的。因此,数组在C语言中是个“二等公民”。事实上,下表表达式 a[i] 就是按照等价的指针表达式 *((a)+(i)) 定义的。1,函数形参的数组和指针声明可以互换。例如:void f(char a[]) {} 与 void f原创 2014-03-13 16:39:36 · 708 阅读 · 0 评论 -
c语言指针的强制转换
在c语言中经常看到以下类似的代码:int x = 1;(char*)&x;这样的形式的代码,这个里面就涉及一个类型转换的问题。以下是在VC6.0中调试的结果代码:int main(int argc, char* agrv[]){ int num = 1; printf("&num=%p \n", &num); printf("&num+1=%p \n", &num+原创 2014-03-13 13:21:56 · 1329 阅读 · 0 评论 -
数组、指针
下面文章来自朱兆祺编写的《攻破c语言笔试和机试难点》的pdf,加上部分自己验证程序。在此感谢这位牛人为我们详尽讲解了C语言细节和难点问题。1.1 数组、数组元素、指针的大小1. 如程序清单6. 1所示,程序输出什么?[csharp] view plaincopy#include int main(int转载 2014-02-18 21:49:43 · 644 阅读 · 0 评论 -
字节序及对堆栈的影响
何为大端序,小端序?简单点说,就是字节的存储顺序,如果数据都是单字节的,那怎么存储无所谓了,但是对于多字节数据,比如int,double等,就要考虑存储的顺序了。注意字节序是硬件层面的东西,对于软件来说通常是透明的。再说白一点,字节序通常只和你使用的处理器架构有关,而和编程语言无关,比如常见的Intel x86系列就是小端序。Big-endian(大端序)数据的高位字节存放在地址的低端转载 2014-02-19 14:02:30 · 702 阅读 · 0 评论 -
typedef的用法
不管实在C还是C++代码中,typedef这个词都不少见,当然出现频率较高的还是在C代码中。typedef与#define有些相似,但更多的是不同,特别是在一些复杂的用法上,就完全不同了,看了网上一些C/C++的学习者的博客,其中有一篇关于typedef的总结还是很不错,由于总结的很好,我就不加修改的引用过来了,以下是引用的内容(红色部分是我自己写的内容)。用途一:定义一种类型的别名,而不转载 2014-02-18 14:48:19 · 461 阅读 · 0 评论 -
函数指针的数组
一,typedef int (init_fnc_t) (void) 与 int (*init_fnc_t) (void) 区别1、typedef int (init_fnc_t) (void);表示定义init_fnc_t为函数类型,该函数返回int型,无参数。而“init_fnc_t *init_sequence[]={ cpu_init, board_init转载 2014-02-18 15:32:44 · 563 阅读 · 0 评论 -
C语言结构体的字节对齐原则
一.为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地转载 2014-02-15 15:48:46 · 630 阅读 · 0 评论 -
C语言中,static的作用?
在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)第一个作用:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内容#include增加这条语句char a = ‘A‘; // global va转载 2014-02-15 11:53:16 · 634 阅读 · 0 评论 -
C语言正则表达式的使用
标准的C和C++都不支持正则表达式,但有一些函数库可以辅助C/C++程序员完成这一功能,其中最著名的当数Philip Hazel的Perl-Compatible RegularExpression库,许多Linux发行版本都带有这个函数库。C语言处理正则表达式常用的函数有regcomp()、regexec()、regfree()和regerror(),一般分为三个步骤,如下所示:C语言原创 2014-03-21 21:27:11 · 1430 阅读 · 1 评论