当前位置:首页 > 天道酬勤 > 正文内容

动物上下移动怎么编程(c语言左值与右值)

张世龙2021年12月21日 05:25天道酬勤320

如果完成一个任务需要10个步骤、20个数据,您如何自动化整个过程?

如果按步骤输入命令和数据,整个过程将无法脱离手动操作。 将这10个步骤编辑为指令后,指令和数据按照一定的编码规则保存,一个部件依次将指令解释为电信号,另一个部件执行,中间结果也保存,通过循环这个过程可以实现自动化。

这就是瑞典荔枝存储程序控制的概念,这种计算机被称为瑞典荔枝机,是当今大多数计算的理论模型。

存储指令和数据的部件被称为存储器,可以通过地址随机访问,是线性结构。 无论是电记忆(记忆电路或电容器)还是磁记忆,都由两种状态的二进制表示。 存储器是使用容量的电存储装置,8位构成1字节,各字节具有线性地址。

要“保存和检索”数据,必须从该地址获取值。 地址之间存在可用的线性关系,但不方便表示要使用地址访问数据。 因此,高级语言使用标识符的概念,用变量名隐式表示存储器单元的地址,用变量名直接取数据值。 尽管如此,变量名称作为左值和右值还是略有不同。 右边的值纯粹是指存储器单元内的01字符串所表示的数据值。 另一方面,右边的值是可寻址的、非只读的表达式,表示可修改的对象,如果再次出现在表达式的右侧,则表示数据值。

在内存中,如果知道一个存储器的起始地址及其编码规则,则可以按照变量类型的长度进行解码,并依次访问对应的相邻单元的值。 排列也是如此,结构体、类也是如此。 要利用这种地址线性关系,变量名大多直接取数据值,使用以下运算符会很麻烦,相邻单元格的值无法通过地址访问。

int n=22;

int m=33;

*n*=2;

* * (n sizeof (英寸) ) *=2;

计数; //44 33

如何显式获取地址并隐式获取数据值? 这就是指针变量,指针是地址,指针变量是存储单元地址的变量。

指针变量作为左边的值,表示修改地址指向新的存储单元,也可以理解为指针的移动。 要理解指针,重要的是要在指针被用作左值时进行修改,以理解将获得新的地址值,从而形成指针的移动。

1 数组中指针的移动

因特尔[ ]={ 1,2,3,4,5 };

for (英制=0; i5; I ) )

cout ' arr [第二季度];

for(intj=0; j5; j )日本

' * (亚太及日本地区);

数组名称是基地址,下标相当于基地址的偏移量,可以得到不同的变量地址。

字符中数组内的指针移动等:

char dst[]='abcdef ';

char* src='ghi ';

char* ch=dst;

wile(*ch=*src );

coutdst; //ghi

2 链表中指针的移动

是通过移动指针来实现的,数组元素可以随机访问(下标可以进行算术运算),而链表的节点只能依次访问)相邻的节点可以逐个访问。

理解链表的关键是理解对节点的链接、切断、指针移动,都是通过指针(节点的指针字段)赋值实现的,指针赋值表达式的左值可以理解为左值的重新指向。 或者,左边的值和右边的值指向同一个方向。

如下所示插入节点。

删除节点的方法如下所示。

遍历链表:

链表中常见的指针操作:

(指针为左侧值时的代入符号可以理解为左侧值所指)

3 STL中迭代器也是一种特殊的指针容器

intarr [ ]={ 10,20,30,40,50 };

向量机(arr,arr 5);

矢量int :迭代器it;

for (it=贝琴); 资讯科技!=vec.end (; 资讯科技)

cout ' ' *it;

//10 20 30 40 50

4 文件指针的移动

文件*流;

sream=fopen (我的文件. txt ),) a );

fr intf (流,' This is a test ' ); //读写文件时,编译器隐式地实现了文件指针的移动

printf(thefilepointerisatbyte3)

%ld\n ',菲特尔(流); //ftell ) )可以返回到文件指针的位置

feek (流,3,SEEK_SET ); //fseek ) )可以让程序员设定文件指针的位置

通道=流(fgetc ); //返回文件的第四个字符,s

打印机(' % c ',通道);

结算(流;

-结束-

扫描二维码推送至手机访问。

版权声明:本文由花开半夏のブログ发布,如需转载请注明出处。

本文链接:https://www.zhangshilong.cn/work/26117.html

分享给朋友:

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。