#include <stdio.h>
#include <stdlib.h>
// 数组是一块连续的内存空间 数组名 就是内存空间的首地址
// 数组名[i] == *(数组名+i);
main()
{
/* char[] arr = new char[20];
char arr[] ;
*/
// 创建一个长度为5的int类型的数组
int arr[5] ={1,2,3,4,5};
printf("a[0]=%d\n",arr[0]);
printf("a[4]=%d\n",arr[4]);
// 逻辑上是错误的代码 数组下标越界
// printf("a[5]=%d\n",arr[5]);
// windows xp 缓冲区越界补丁
// arr是一个什么东西呢?
printf("arr = %#X\n",arr);
// 回答:打印 数组的第一个元素的地址
printf("arr[0]地址 = %#X\n",&arr[0]);
// 打印数组中的第二个元素
printf("arr[1]=%d\n",arr[1]);
printf("arr[1]=%d\n", *(arr+1));
//问题: arr[i] *(arr+i) 代表的是同一个变量么?
// 代表的是同一块内存空间 指向的是同一个变量
//通过实验 : 数组名表示的 就是这个数组第一个元素 的首地址
system("pause"); // 调用windows下系统的命令 让程序暂停执行 方便观察程序的执行结果
}
#include <stdio.h>
#include <stdlib.h>
main()
{
int i =3; //天津的某个路上 盖了一个房子 3
int j =5; // 北京的某个路上 盖了一个方法 5
int* p = &i; // p 天津的门牌号
int* q = &j; // q 北京的门牌号
// 指针的运算和数组都是紧密关联的
char arr[5]={'a','b','c','d','e'}; //一块连续的内存空间
char* p1 = &arr[2];
printf("char = %c\n", *(p1-1));
// char 内存中占用 1个字节
// int 内存 中占用 4个字节
int intarr[5]={1,2,3,4,5}; //一块连续的内存空间
int* q1 = &intarr[2];
printf("char = %d\n", *(q1-1));
// 指针的运算 按照 约定好的数据类型 偏移相对应的内存空间的大小
system("pause"); // 调用windows下系统的命令 让程序暂停执行 方便观察程序的执行结果
}
分享到:
相关推荐
C语言复习.ppt 本节内容主要涵盖了C语言的基础知识,包括数据类型、运算符、表达式、基本结构、数组、函数、结构体、指针、文件等方面。 一、数组 数组是一种重要的数据结构,在C语言中,数组是由固定数目的同...
本压缩包中的文件涵盖了C语言的一些核心概念,包括链表、指针和数组等,这些都是C语言中非常关键的数据结构和操作。此外,还有一些特定的程序设计题目,如八皇后问题和逆波兰表达式。 1. **链表**:链表是计算机...
- 指针、数组和函数声明可以组合,但不是任意组合,比如函数不能返回数组。 - 在解析组合声明时,遵循“从里到外”的原则,先处理括号内的内容,再考虑*号的影响。 - 解析复杂声明时,通常使用右左法则:从未定义...
理解指针的概念,掌握指针运算和指针数组等高级用法是C语言进阶的关键。 四、数组与字符串 数组是存储相同类型元素的集合,字符串是字符类型的数组,通常以空字符'\0'结尾。在C语言中,数组的使用和操作需要特别...
指针变量作为函数参数(复习) 函数的指针和指向函数的指针变量 指针数组和指向指针的指针 堆内存的使用(指针数组实现动态数组) main函数的命令行参数
本资源摘要信息涵盖了C语言复习专用题集的主要知识点,涵盖了C语言程序设计概述、数据类型及其运算、语句与输入输出、选择结构程序设计、循环结构程序设计、数组、函数、指针、结构体与共用体、文件等方面的知识点,...
数组可以是一维、二维或多维的,理解如何声明、初始化、访问和修改数组元素,以及如何使用指针与数组交互,是C语言学习中的重要环节。 "04函数"是组织代码、提高可读性和重用性的关键。C语言中的函数可以接受参数,...
标题和描述部分提到的“C语言复习知识点.pdf”意味着接下来的内容将涵盖C语言编程的一些基础知识点。根据提供的部分内容,我们将对以下几个方面进行详细的阐述: 1. C语言基本语法:包括变量、数据类型、运算符、...
通过以上实验,你可以深入理解C语言中的指针操作,包括指针变量的声明、初始化,通过指针访问和修改数组、字符串,以及在函数中传递地址等高级用法。熟练掌握这些知识点对于理解和编写复杂的C语言程序至关重要。
理解指针的使用和操作,如指针变量、指针运算、指针数组和函数指针,能提高程序效率和灵活性。 数组和字符串也是常用的数据结构。数组是一组相同类型的数据集合,字符串是字符数组的特殊形式。掌握数组的声明、初始...
这份复习资料和练习题集合,旨在帮助考生在短时间内高效复习并提升C语言技能。 首先,我们要了解C语言的基础概念。C语言是由贝尔实验室的Dennis Ritchie开发的一种过程性编程语言,它以其简洁、高效和可移植性而...
复习题目会包含指针的声明、赋值、解引用以及通过指针操作数组和结构体。 8. **结构体**: 结构体允许我们组合不同类型的数据,创建自定义数据类型。复习题目可能涉及结构体的声明、初始化、定义指针指向结构体以及...
【计算机二级考试C语言复习指南】 C语言是计算机科学领域中一种基础且强大的编程语言,对于准备参加计算机二级考试的考生来说,掌握C语言的基本概念、语法和编程技巧至关重要。本复习资料旨在帮助考生全面理解和...
### C语言复习纲要 #### 一、概述 本文档主要针对大一学生使用谭浩强版《C程序设计》教材的学习者进行期末复习时所准备的复习资料。该资料适用于初学者快速回顾并掌握C语言的核心概念和技术要点,帮助学生在考试中...
这份"华中科技大学C语言复习资料"正是为学习者提供了宝贵的资源,帮助他们更好地理解和掌握C语言。 这份复习资料包含了历年来的真题,这些真题代表了学校对C语言教学的重点和难点,通过研习这些题目,学生可以了解...
这份“C语言复习资料--编程.zip”压缩包包含了一本名为“C语言复习资料--编程.doc”的文档,显然是为了帮助学习者巩固C语言的基础知识和提升编程技能。 C语言的核心概念包括变量、数据类型、运算符、控制结构(如if...
理解数组与指针的关系,如何通过指针操作数组,以及指针在动态内存分配和函数参数传递中的应用,是C语言的一大难点。 7. **结构体与联合**:结构体允许将不同类型的成员组合成一个整体,联合则共享同一块内存。这些...
这份"**C语言复习题**"是针对学习者或学生准备的,旨在帮助他们巩固和提升C语言的知识水平,以应对可能的考试或项目需求。下面我们将详细探讨这份复习资料可能涵盖的一些关键知识点: 1. **基本语法**:C语言的基础...
理解数组和指针的关系,以及如何安全地使用指针是进阶C编程的关键。 7. **结构体与联合**:结构体允许将不同类型的变量组合在一起,形成复合数据类型。联合则是另一种形式,它的一个成员可以占据整个联合的全部空间...
深入理解指针的概念,熟悉指针运算和指针在数组、字符串及动态内存分配中的应用,也是提高C语言编程能力的关键。 资料包中可能包含的详细内容: 1. **基础教程**:涵盖C语言的基本语法和概念,帮助初学者建立稳固...