当前位置:首页 » 编程语言 » c语言地址操作

c语言地址操作

发布时间: 2022-05-30 18:01:59

A. c语言中地址操作符、指针操作符分别是什么

&是地址操作符。
e.g.
int a;
int *b;
b = &a; //&就是取a的地址,即是地址操作。

*是指针操作符,可以声明指针,也可操作指针所指的数据;
int *p;
*p = 10;

B. “c语言允许直接访问物理地址,能进行位操作”是什么意思啊

就是使用C语言能够直接定位物理内存的地址,即通过内存地址(如0xfa283401)得到该地址上的数据。
计算机中的数据都是以位(bit,比特)来作为基本单位的,C语言能直接对位进行操作,包括求与,并,或,异或,非等。
物理地址是一个很宽泛的概念,磁盘,内存等存储设备都有物理地址的说法。
物理内存地址指的是硬件实现上物理内存展现给外部总线访问的编码地址,其范围等于物理内存的大小.
大家常说的物理内存就是指安装在主板上的内存条,其实不然,在计算机的系统中,物理内存不仅包括装在主板上的内存条(RAM),还应该包括主板BIOS芯片的ROM,显卡上的显存(RAM)和BIOS(ROM),以及各种PCI、PCI-E设备上的RAM和ROM。
地址空间就是对物理内存编码(地址编码)的范围。
所谓编码就是对每一个物理存储单元(一个字节)分配一个唯一的地址号码,这个过程又叫做“编址”或者“地址映射”。这个过程就好像在日常生活中我们给每家每户分配一个地址门牌号。与编码相对应的是“寻址”过程——分配一个地址号码给一个存储单元的目的是为了便于找到它,完成数据的读写,这就是“寻址”,因此地址空间有时候又被称作“寻址空间”。系统不仅要给主板上的内存条编址,还要给上述的其它物理内存编址;它们都被编在同一个地址空间内,编址后的物理内存就可以被系统资源使用或占用。

C. C语言 对指针地址的操作

我来扯淡

void GRPH_Pset(int x, int y, PIXEL c)//x,y当然是PIXEL c的坐标了
{
PIXEL *p;

if ((x >= GRPH_clip_window_sx) && (y >= GRPH_clip_window_sy) &&
(x <= GRPH_clip_window_ex) && (y <= GRPH_clip_window_ey))//这个if语言是判断、、//PIXEL c是不是超出了某个界限了
{
//这个首先获取用于存储PIXEL这个数组GRPH_Buffer 。我猜测这个程序大概是这么
//初始化的 GRPH_Buffer=(PIXEL *)malloc(sizeof(PIXEL)*size)
//然后将GRPH_Buffer强制转换为(PIXEL *) ,因为是PIXEL *类型的指针了。所以
//所以在GRPH_Buffer +1就是加PIXEL大小的地址(如果是int的话,比如有个int *p
///那 p+1就是加int个大小的地址,这样就好理解了)。所以他加上了x+y*GRPH_width
//个大小,赋值给p后,p指向的地址就是GRPH_Buffer+ x+y*GRPH_width的地址了
p=(PIXEL *)(GRPH_Buffer) + x + y * GRPH_width;
*p = c;//最后将PIXEL c的值赋值给p指向的位置。将c存储起来。
}
}

//最后需要说的是这个二位数组其实就可以看成是一维数组,一般的二维数组是存储方式是按行存储,第一行存储完了存储第二行,以此类推。
//但是你的这个程序创建数组应该是一维的。然后程序是按照行存储,即先将第一行存储完了,再存储第二列。所以才会有x + y * GRPH_width的找寻地址方式。

D. C语言中什么是地址操作

你要表达一个什么东西啊 是怎么进行地址操作吗??要是的话可以通过指针来进行地址操作,

E. C语言中 取内容与取地址运算符的问题

我明白你什么意思,指针的概念确实不好理解!
1,先给你说下指针,你把指针理解了运算符的抵消就明白一半了!
指针里面是保存的内存地址(就像int变量里面保存的是整型变量一个意思)。
整型变量保存在内存里面,我可以通过这个变量名称来调用这个数据,也可以通过指针里面这个变量的地址加上*(间接访问运算符),来调用这个数据。
2,再说下运算符*和&
*是间接访问运算符:就是可以通过地址,找到这个地址里面的变量,所以
*p1
就等同于变量a
&是求地址运算符:就是将变量所在的内存地址,提取出来
这两个运算符的运算等级是相同的,也就是说谁距离变量近,就谁先。所以*&a和*(&a)是一样的,都是先取地址,在对地址进行间接访问。但是一定要注意*与&的顺序,&*a是无效的。
3,再说下题
*运算符就是对地址进行操作的,那么
*地址
的意思就是访问地址里面的数据,而&a就是取变量a的地址,所以*&a:
先取变量a的地址

对地址进行间接访问,两个操作就相互抵消了,最后还是变量a。
4,还有什么不明白的么?

F. c语言求地址操作问题

str[i]和string[k+1]都是地址,因此地址赋值不需要地址符,直接赋值即可:

str[i]=string[k+1];

G. 在c语言中地址运算规则是什么

没有什么运算规则,就是数组名代表数组的首地址,数组名+偏移量=数组名[偏移量]的地址,即a+n的意思就是a[n]的地址,没有特别的了

H. C语言用什么操作地址

在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。在高级语言中,指针有效地取代了在低级语言,如汇编语言与机器码,直接使用通用暂存器的地方,但它可能只适用于合法地址之中。指针参考了存储器中某个地址,通过被称为反参考指针的动作,可以取出在那个地址中存储的值。作个比喻,假设将电脑存储器当成一本书,一张内容记录了某个页码加上行号的便利贴,可以被当成是一个指向特定页面的指针;根据便利粘贴面的页码与行号,翻到那个页面,把那个页面的那一行文字读出来,就相当于是对这个指针进行反参考的动作。

I. C语言中对地址的操作有什么作用

地址操作,也即指针的使用,指针是c一大特点,c是介于高级语言(C++等)与低级语言(汇编)的一种语言,c比其他高级语言更接近底层硬件,而接触到硬件就避免不了地址操作,灵活的指针使用可以编出高效的程序。

具体的好处,看下网上搜的:

关于指针的本质和基本的运算符我们讨论过了,在这里,我想再笼总地谈一谈使用指针的必要性和好处,为我们今后的使用和对后面篇章的理解做好铺垫。简而言之,指针有以下好处:
1)、方便使用动态分配的数组。
这个解释我放在本系列第六篇中进行讲解。
2)、对于相同类型(甚至是相似类型)的多个变量进行通用访问。
就是用一个指针变量不断在多个变量之间指来指去,从而使得非常应用起来非常灵活,不过,这招也比较危险,需要小心使用:因为出现错误的指针是编程中非常忌讳的事情。
3)、变相改变一个函数的值传递特性。
说白了,就是指针的传地址作用,将一个变量的地址作为参数传给函数,这样函数就可以修改那个变量了。
4)、节省函数调用代价。
我们可以将参数,尤其是大个的参数(例如结构,对象等),将他们地址作为参数传给函数,这样可以省去编译器为它们制作副本所带来的空间和时间上的开销。
5)、动态扩展数据结构。
因为指针可以动态地使用malloc/new生成堆上的内存,所以在需要动态扩展数据结构的时候,非常有用;比如对于树、链表、Hash表等,这几乎是必不可少的特性。
6)、与目前计算机的内存模型相对应,可按照内存地址进行直接存取,这使得C非常适合于一些较底层的应用。
这也是C/C++指针一个强大的优点,我会在后面讲述C语言的底层操作时,较详细地介绍这个优点的应用。

J. C语言指针指定地址

首先,不能这样做,你c语言操作的地址并不是真实的地址,是操作系统从内存的某一段虚拟给你的地址,每次都不一样,每个程序所使用的内存互不干扰。
第二,而你的程序退出后,所拥有的空间就被系统全部回收了。也就不存在了。否则,你c语言乱改一通,要是改到系统正在用的内存,系统不就出现异常了吗。内存并不是由你管理的,而是操作系统管理的。

假设 a程序的 p指针,指向 0xaaa地址 ,你修改 b程序的 p指针,指向0xaaa,也是无法修改的,每个程序的内存都是系统虚拟的。保证程序可以安全稳定的执行。

热点内容
蔚来配置哪些值得加 发布:2025-02-11 16:58:28 浏览:325
索引型数据库 发布:2025-02-11 16:58:26 浏览:916
hbasephp 发布:2025-02-11 16:44:41 浏览:761
微软不给源码 发布:2025-02-11 16:13:37 浏览:38
php的get方法 发布:2025-02-11 16:12:30 浏览:967
源码网嘉 发布:2025-02-11 16:07:06 浏览:192
免费ftp服务软件 发布:2025-02-11 15:58:06 浏览:866
大樱桃建园为什么要配置授粉树 发布:2025-02-11 15:58:00 浏览:629
五菱宏光s顶配有哪些配置 发布:2025-02-11 15:50:57 浏览:287
华为8加128配置有哪些 发布:2025-02-11 15:48:20 浏览:580