`

C语言复习 指针和数组

 
阅读更多
#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语言复习.pptC语言复习.ppt

    C语言复习.ppt 本节内容主要涵盖了C语言的基础知识,包括数据类型、运算符、表达式、基本结构、数组、函数、结构体、指针、文件等方面。 一、数组 数组是一种重要的数据结构,在C语言中,数组是由固定数目的同...

    C语言程序(链表,指针,数组)

    本压缩包中的文件涵盖了C语言的一些核心概念,包括链表、指针和数组等,这些都是C语言中非常关键的数据结构和操作。此外,还有一些特定的程序设计题目,如八皇后问题和逆波兰表达式。 1. **链表**:链表是计算机...

    C语言函数指针复习小结

    - 指针、数组和函数声明可以组合,但不是任意组合,比如函数不能返回数组。 - 在解析组合声明时,遵循“从里到外”的原则,先处理括号内的内容,再考虑*号的影响。 - 解析复杂声明时,通常使用右左法则:从未定义...

    c语言复习资料及习题和答案

    理解指针的概念,掌握指针运算和指针数组等高级用法是C语言进阶的关键。 四、数组与字符串 数组是存储相同类型元素的集合,字符串是字符类型的数组,通常以空字符'\0'结尾。在C语言中,数组的使用和操作需要特别...

    C语言课件—指针

    指针变量作为函数参数(复习) 函数的指针和指向函数的指针变量 指针数组和指向指针的指针 堆内存的使用(指针数组实现动态数组) main函数的命令行参数

    C语言复习专用题集(共十套).doc

    本资源摘要信息涵盖了C语言复习专用题集的主要知识点,涵盖了C语言程序设计概述、数据类型及其运算、语句与输入输出、选择结构程序设计、循环结构程序设计、数组、函数、指针、结构体与共用体、文件等方面的知识点,...

    《C语言程序设计》C语言期末上机考试复习题+答案50道,顺序加选择,循环,数组,函数,指针

    数组可以是一维、二维或多维的,理解如何声明、初始化、访问和修改数组元素,以及如何使用指针与数组交互,是C语言学习中的重要环节。 "04函数"是组织代码、提高可读性和重用性的关键。C语言中的函数可以接受参数,...

    C语言复习知识点.pdf

    标题和描述部分提到的“C语言复习知识点.pdf”意味着接下来的内容将涵盖C语言编程的一些基础知识点。根据提供的部分内容,我们将对以下几个方面进行详细的阐述: 1. C语言基本语法:包括变量、数据类型、运算符、...

    C语言复习题指针操作

    通过以上实验,你可以深入理解C语言中的指针操作,包括指针变量的声明、初始化,通过指针访问和修改数组、字符串,以及在函数中传递地址等高级用法。熟练掌握这些知识点对于理解和编写复杂的C语言程序至关重要。

    C语言复习资料(适合初学者)

    理解指针的使用和操作,如指针变量、指针运算、指针数组和函数指针,能提高程序效率和灵活性。 数组和字符串也是常用的数据结构。数组是一组相同类型的数据集合,字符串是字符数组的特殊形式。掌握数组的声明、初始...

    专升本C语言复习资料和练习题

    这份复习资料和练习题集合,旨在帮助考生在短时间内高效复习并提升C语言技能。 首先,我们要了解C语言的基础概念。C语言是由贝尔实验室的Dennis Ritchie开发的一种过程性编程语言,它以其简洁、高效和可移植性而...

    C语言复习题

    复习题目会包含指针的声明、赋值、解引用以及通过指针操作数组和结构体。 8. **结构体**: 结构体允许我们组合不同类型的数据,创建自定义数据类型。复习题目可能涉及结构体的声明、初始化、定义指针指向结构体以及...

    计算机二级考试C语言复习资料笔试加机试

    【计算机二级考试C语言复习指南】 C语言是计算机科学领域中一种基础且强大的编程语言,对于准备参加计算机二级考试的考生来说,掌握C语言的基本概念、语法和编程技巧至关重要。本复习资料旨在帮助考生全面理解和...

    c语言复习纲要 用于大一谭浩强版本复习

    ### C语言复习纲要 #### 一、概述 本文档主要针对大一学生使用谭浩强版《C程序设计》教材的学习者进行期末复习时所准备的复习资料。该资料适用于初学者快速回顾并掌握C语言的核心概念和技术要点,帮助学生在考试中...

    华中科技大学C语言复习资料

    这份"华中科技大学C语言复习资料"正是为学习者提供了宝贵的资源,帮助他们更好地理解和掌握C语言。 这份复习资料包含了历年来的真题,这些真题代表了学校对C语言教学的重点和难点,通过研习这些题目,学生可以了解...

    C语言复习资料--编程.zip_C语言_C语言资料_复习_编程_编程复习资料

    这份“C语言复习资料--编程.zip”压缩包包含了一本名为“C语言复习资料--编程.doc”的文档,显然是为了帮助学习者巩固C语言的基础知识和提升编程技能。 C语言的核心概念包括变量、数据类型、运算符、控制结构(如if...

    c语言复习课件。。专升本有用和初学者专用

    理解数组与指针的关系,如何通过指针操作数组,以及指针在动态内存分配和函数参数传递中的应用,是C语言的一大难点。 7. **结构体与联合**:结构体允许将不同类型的成员组合成一个整体,联合则共享同一块内存。这些...

    C语言复习题(1)_c语言复习题_

    这份"**C语言复习题**"是针对学习者或学生准备的,旨在帮助他们巩固和提升C语言的知识水平,以应对可能的考试或项目需求。下面我们将详细探讨这份复习资料可能涵盖的一些关键知识点: 1. **基本语法**:C语言的基础...

    专升本-c语言复习资料.rar

    理解数组和指针的关系,以及如何安全地使用指针是进阶C编程的关键。 7. **结构体与联合**:结构体允许将不同类型的变量组合在一起,形成复合数据类型。联合则是另一种形式,它的一个成员可以占据整个联合的全部空间...

    二级c语言复习资料,很好的备考资料

    深入理解指针的概念,熟悉指针运算和指针在数组、字符串及动态内存分配中的应用,也是提高C语言编程能力的关键。 资料包中可能包含的详细内容: 1. **基础教程**:涵盖C语言的基本语法和概念,帮助初学者建立稳固...

Global site tag (gtag.js) - Google Analytics