左值(地址)和右值(地址的内容):
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; }
相关推荐
本教学资源“jidao-chap9 指针与数组(2017).ppt”显然是一个关于这两部分知识的详细讲解,适合C语言初学者和进阶者学习。 首先,我们来深入理解一下指针。指针在C语言中扮演着特殊的角色,它是一个变量,但存储的...
在C++编程语言中,数组是一...总之,C++中的数组和指针是编程的基础,理解它们的定义、初始化、存储方式以及如何在函数中使用数组是学习C++的关键步骤。通过熟练掌握这些概念,开发者能够更有效地处理和操作大量数据。
4. `scanf`和`printf`函数与指针:`scanf`需要指针接收输入,因为输入的数据会被存放在指针所指向的内存位置。`printf`中的`%s`格式化字符串用于打印以`'\0'`结尾的字符串,而`%s`在`scanf`中用于读取字符串直到遇到...
- 数组指针则是一个指针,它指向一个数组的开始位置。 6. **指向函数的指针** - 在C语言中,函数的地址也可以被存储在指针中,这样的指针可以用来调用相应的函数,实现函数的间接调用。 7. **const限定符与指针*...
《C语言经典案例集1-4章 何钦铭》是一部深入浅出的C语言学习资料,由知名编程教育专家何钦铭编写。这个压缩包包含的是一系列实验案例的代码,旨在帮助初学者和进阶者巩固C语言的基础知识,提升编程能力。通过实践...
总的来说,数组和指针是C语言中基础且强大的工具,它们在处理大量数据和实现各种算法时起着核心作用。理解数组的定义、初始化、存储以及如何作为函数参数使用,对于编写有效的C程序至关重要。在实际编程中,熟练掌握...
学习并掌握这一过程对于开发图形用户界面、游戏编程、图像处理软件或者任何涉及位图显示和存储的应用都是至关重要的。通过理解这些基本概念,开发者可以更有效地处理图像数据,创建出更加丰富和真实的视觉效果。
【指针】是C语言中的核心概念,也是其独特特性之一。指针允许程序员直接操纵...总的来说,指针是C语言中强大的工具,能够实现高效编程、动态数据结构和复杂的函数交互。理解和熟练使用指针是成为C语言高手的关键步骤。
综上所述,这套课件全面覆盖了C语言的基础知识,从函数、数组、指针到数据结构,再到流程控制和结构化编程,为初学者构建了坚实的学习框架。通过深入学习和实践,不仅可以掌握C语言的基本技能,更能为后续的软件开发...
`c-chap7 指针.ppt`将深入讲解指针的概念,包括指针变量的声明、赋值、解引用,以及指针与数组、函数和字符串的交互。 4. **数组**: 数组是相同类型数据的集合,可以看作是内存中的连续存储单元。`c-chap6 数组....
《C语言教学手册第四版》的第二章是深入学习C语言的重要参考资料,它涵盖了C语言的基础和核心概念。这一章通常会包括以下关键知识点: 1. **C语言概述**:C语言是一种强大的、低级的编程语言,由Dennis Ritchie在...
- chap12和chap15涵盖了结构体和联合的概念,它们是C语言中复合数据类型的代表,可以用来封装不同类型的数据,便于组织和管理复杂的数据结构。 4. **文件操作** - 文件操作是程序设计中不可或缺的一部分,chap10...
6. **chap11_指针进阶**:这部分内容可能涉及更复杂的指针应用,如指针数组、数组指针,以及在结构体和联合体中的指针使用。 7. **chap10_函数与程序结构**:函数是C语言中模块化编程的基础,本章可能讲解了函数的...
《C++程序设计(第三版)》是一本深入学习C++编程语言的经典教材,而“chap03”这部分内容着重于讲解C++的基础语法和核心概念。本压缩包中的解答集针对第三版中的Chapter 3的习题,旨在帮助读者巩固和理解C++的基本...
这份名为“c的初级代码”的压缩包包含了一系列章节的C语言代码示例,覆盖了从基础到进阶的不同主题,有助于初学者逐步掌握编程技能。以下是根据压缩包中的文件名和C语言学习的一般顺序,可能涉及的一些知识点的详细...
这一章介绍了C语言的基础知识,包括C语言的历史、开发环境的搭建、第一个C程序的编写以及编译和运行程序的基本步骤。此外,还可能涉及变量、数据类型、常量、运算符和基本输入输出。 2. **chap2:控制结构** 学习...
4. **chap07.ppt** - 可能介绍数组和指针,这是C语言的一大特色,理解和掌握指针是成为C语言高手的关键。 5. **chap08.ppt** - 可能讲解结构体与联合体,这是C语言中处理复杂数据结构的方式,对于理解和编写更复杂...
"chap4-src推箱子"是一个基于C++编程语言的经典游戏——推箱子的源代码实现。在深入探讨这个项目之前,我们需要了解推箱子游戏的基本规则。推箱子是一款益智游戏,玩家需要在一个有障碍物和箱子的迷宫中,通过推动...
9. **chap12.ppt** - 最后一章可能包含综合案例、项目实践或复习总结,帮助学生巩固所学知识并应用到实际编程中。 这些PPT课件为学习者提供了一条循序渐进、系统学习C语言的路径,从基础概念到高级特性,覆盖了...
在学习编程语言的过程中,C语言始终占据着举足轻重的地位。它是一种基础且强大的编程语言,被广泛应用于操作系统、嵌入式系统、游戏开发、软件工程等多个领域。"教你半个月内精通C语言"的课程旨在帮助初学者快速掌握...