左值(地址)和右值(地址的内容):
1. 使用数组_直接引用:因为符号表中,符号a对应的值就是a数组的首地址。
2. 使用指针_间接引用:因为符号表中,符号p的值是“地址”,需要从内存中取得对应的“地址的内容”,然后才能像“访问数组元素”那样进行元素的访问。
混合两种方式:
代码示例:
#include <iostream> using namespace std; int main(){ //1. 理解"左值"(数组是"不可修改的左值")和"右值" //2. 符号表中: // (1)变量名a的值为 a的地址内容==> a[i]是直接引用 // 因此,整个过程取一次内存 // (2)变量名p的值为 p的地址==> 先从"p的地址"取得"p的地址内容"==> *(p+i)是间接引用 // 因此,真个过程取两次内存 char *p1="abcdefg"; cout<<p1[0]<<endl; cout<<"符号表 (变量名->变量值)"<<endl; char a1[]={'a','b','c'}; char *p3=a1; cout<<"符号表中变量a1的值 : "<<(int *)&a1<<endl; cout<<"数组a1的首地址 : "<<(int *)a1<<endl; cout<<"符号表中变量p3的值(p3的地址) : "<<(int *)&p3<<endl; cout<<"p3的地址内容 : "<<(int *)p3<<endl; cout<<*a1<<endl; cout<<*p3<<endl; cout<<p3[0]<<endl; cout<<*(p3+1)<<endl; //3. 指针和数组的分配空间 //(1)定义指针时,为指针分配了空间,不为指向的内容分配空间 //特例:若指针指向"只读字符串",编译器"指针"和"指向的内容"分配空间 char *p4="breadfruit"; //*(p4+1)='4'; 只读 cout<<p4<<endl; //否则,编译错误 //float *p5=3.141; //(2)数组则是分配空间的,指向的字符串是"读写"的 char a[]="gooseberry"; a[1]='4'; cout<<a<<endl; return 0; }
相关推荐
C++程序设计:第六讲 chap5数组与指针new.pdf
第十六章 指针和数组1.指针:一个存储对象的地址。2.数组:存储器中被连续排列的一列数据。3.变元总是以值的形式从主调函数传递到被调用函数。4.声明指针变量:类
基于OpenSSL库编程实现Chap应答,得到NT-response,可以与wireshark捕获的应答包中信息进行比较验证。
对于指针和数组的c语言教学,可以帮助c语言学习者充分理解此部分内容。
jidao-chap9 指针与数组(2021).pptx
C语言课件chap06 C语言的基本数据类型有哪些? 各种基本数据类型的常量和变量是怎样定义的? C语言有哪些表达式? 各种表达式的求解规则是什么?
这是我门学校计算机系在用的课件,大家有兴趣的话拿去看看把
C 程序设计:第六讲 chap5数组与指针new.pdf
chap7数组.ppt
数据结构课程chap05数组和广义表.ppt
程序给定一个图像位图数据、宽、高、颜色表指针及每像素所占的位数等信息,将其写到指定文件中
创建桌面快捷方式和活动桌面【\chap4\ShortCut】 (5)基本网络编程实例 点对点文件传输【\chap5\Transfer】 大型文件传输【\chap5\Transfer】 端口扫描程序【\chap5\ MyPortScanner】 Finger编程【\chap5\MyFinger...
编程读取chap挑战值并生产应答包,建议在Linux系统下编译运行
高级语言程序设计:chap06_数组.ppt
C语言课件chap04 什么是循环? 为什么要使用循环? 如何实现循环? 实现循环时,如何确定循环条件和循环体? 怎样使用while 和do-while语句实现次数不确定的循环? while 和do-while语句有什么不同? 如何使用break语句...
C语言课件chap03 什么是分支结构?它的作用是什么? switch 语句中的 break 起什么作用? 逻辑运算和关系运算的相同之处是什么?它们之间又有什么不同? 字符型数据在内存中是如何存储的?
chap4_C语言_c_源码.zip
计算导论与程序设计:chap6一维数组.pptx
计算导论与程序设计:chap10二维数组.pptx
创建桌面快捷方式和活动桌面【\chap4\ShortCut】 (5)基本网络编程实例 点对点文件传输【\chap5\Transfer】 大型文件传输【\chap5\Transfer】 端口扫描程序【\chap5\ MyPortScanner】 Finger编程【\chap5\MyFinger...