volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。下面举例说明。在D ...
分类:
其他好文 时间:
2016-10-05 19:57:29
阅读次数:
209
本文参考http://www.prglab.com/cms/pages/c-tutorial/advanced-data/pointers.php 1.存储其它变量地址的变量(如下面例子中的address),我们称之为指针(pointer)。 2.地址操作符/去引用操作符 在变量名标识符前面添加的与 ...
分类:
编程语言 时间:
2016-10-03 17:04:41
阅读次数:
131
gets()和scanf()联系:都可以用于输入字符串; 1、scanf() 语法:scanf("格式控制字符串",变量地址列表); 接受字符串时:scanf("%s",字符数组名或指针); 2、gets() 语法:gets(字符数组名或指针); 区别:scanf遇到空格、回车和Tab键都会认为输入 ...
分类:
其他好文 时间:
2016-09-30 18:24:01
阅读次数:
127
1.首先来说,函数指针 就是函数的指针 2.指针函数,就是指针的函数。也就是返回值是个指针 一、指针 【1】指针 1 指针变量:用于存放地址量的变量 2 地址常量 int a = 20; int *p = &a; 【2】运算符 1 & 2 *(指针解引用):通过地址获取其内容 3 []:只针对于指针 ...
分类:
编程语言 时间:
2016-09-27 19:39:21
阅读次数:
147
事实上,计算机系统的多维数组其实最终还是以一维数组的形式实现的。就N x M的二维数组来讲,设其数组名为array。指针array指向一个数组,该数组存放的是一系列指针,这些指针分别指向相应的一维数组,而这些数组中存放的才是我们的数据。 由此array 是第i个指针变量地址,array[j]则表示相 ...
分类:
编程语言 时间:
2016-09-21 23:11:57
阅读次数:
172
【1】指针 1 指针变量:用于存放地址量的变量 2 地址常量:数组名、&a 【2】 &:取地址符 *: 1 数据类型的一部分 2 指针解引用(取地址里的内容) 3 【3】指针运算 指针加减:加减的是单位长度 【4】指针大小 size = 4字节; 【5】[]:指针加单位长度后,取*(内容)运算 in ...
分类:
其他好文 时间:
2016-09-18 19:35:06
阅读次数:
101
一、前言 虚拟存储器,感觉很难,至少说很复杂,里面涉及到的东西也比较枯燥。当然,如果能彻底搞清楚,对继续学习操作系统原理是百利无一害的。 玩C或C++的人,经常通过&a的方式获取变量地址,并将其赋值给指针变量,也通常用printf打印出地址的值,类似0x8048 034之类的地址值,但要从此刻开始要 ...
分类:
其他好文 时间:
2016-09-17 16:24:22
阅读次数:
189
C语言运算符优先级和口诀 C语言运算符优先级和口诀 一共有十五个优先级: 同一优先级的运算符,运算次序由结合方向所决定 1 () [] . -> (括号,成员排第一) 2 ! ~ -(负号) ++ -- &(取变量地址)* (type)(强制类型) sizeof (单目运算排第二) 3 * / % ...
分类:
其他好文 时间:
2016-09-14 11:02:19
阅读次数:
211
本文转载自:http://www.cnblogs.com/yc_sunniwell/archive/2010/06/24/1764231.html volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有v ...
分类:
其他好文 时间:
2016-09-01 12:51:12
阅读次数:
172
X86-32汇编语言 0.示例helloworld程序 a.生成汇编文件 使用命令 $gcc -On -S helloworld.c -m32 会生成32位汇编文件 b.helloworld.s汇编代码内容简析 以“.”开头的是汇编指示,以“:”结尾表示函数或变量地址,其余为汇编指令 1.第一个汇编 ...
分类:
编程语言 时间:
2016-08-31 22:21:46
阅读次数:
188