`
justshare
  • 浏览: 106012 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

C系列:指针与数组

阅读更多
在C中,数组与指针容易混淆,看过文档之后,我把我自己关于数组与指针的理解写下来。
引用
数组与指针的主要区别在于:
    1、数组在声明的时候就要分配SIZE,但指针不用;
    2、数组通过下标来访问里面的元素,指针通过移动地址指向访问里面的存储元素;
    3、数组一旦声明,它的SIZE是固定的,但指针是变动的;
    4、指针只存储地址,它不能被赋值,而可以对数组可以赋值。
           e.g.
               int i = 10;  int *p;  p = &i; (指针p传地址)
               int arr[] = {1, 2, 23}(数组arr赋初值)) 

引用
char * a[10];  /* 分配存储大小,它是数组,但里面存放着整形指针  */
char * b[]; /* 参数传递,它即是数组又是指针 */
void writelines(char *str[], int n) {
  int i;
  for (i = 0; i < n; i++) {
       printf("%s\n", str[i]);  //这是数组的写法,编译器把它作为数组来处理
  }
  for(i=0; i<n; i++) {
       printf("%s\n", *str++);  //这是指针的写法,如果它仅仅是数组的话,这样写明显是错误的,但在这里编译器把它作为指针来处理
  }
}

void writeArray() {
  char * str[] = {"aaaa1","bbbb2","cccc3","dddd4","eeee5","ffff6","gggg7"};  //这是数组
  int i;
  for(i=0; i<7; i++) {
     printf("%s\n", str[i]); /*数组的处理方式*/
  }
  for(i=0; i<7; i++) {
     printf("%s\n", *str++); /*指针的处理方式,但这里是数组,所以编译器报错*/
  }
}


分享到:
评论

相关推荐

    C语言27:用指针数组控制P0口8位LED流水点亮.rar

    本主题“C语言27:用指针数组控制P0口8位LED流水点亮”主要涉及以下知识点: 1. **C语言指针**:指针是C语言中的一个关键特性,它存储了变量在内存中的地址。通过指针,我们可以直接访问和修改该地址所对应的内存...

    C语言34:用指针数组作为函数的参数显示多个字符串.rar

    指针数组结合了指针和数组的特性,使我们能够灵活地处理一系列相关的数据。 首先,我们要理解指针的基本概念。指针是一个变量,它存储的是另一个变量的地址。当我们声明一个指针变量时,例如`char *str;`,我们声明...

    C语言之指针、数组和函数解释

    数组的本质则是一系列的变量。  2、数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。指针可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常用指针来...

    数组与指针区别(很全面)

    ### 数组与指针的区别详解 ...正确理解和区分数组与指针的概念对于编写高效、可靠的C/C++程序至关重要。通过本文的探讨,希望能帮助读者更好地掌握这两种数据结构的特点,并在实际编程中做出合适的选择。

    指针的用法大全,指针与数组,指针详解

    指针与指针数组也是常见的组合,指针数组可以存储一系列的指针,这样可以方便地管理和操作一组对象。例如,`int *ptrs[10];`定义了一个可以存储10个整型指针的数组。 最后,要特别注意指针的生命周期和空指针。未...

    C语言——借助指针实现数组元素的逆序.zip

    因此,可以使用指针来遍历数组: ```c for(int i = 0; i ; i++) { printf("%d ", arr[i]); // 打印数组元素 } ``` 逆序数组的基本思想是通过两个指针,一个从数组的开头开始,另一个从结尾开始,然后交换它们所...

    全国计算机二级:C语言之指针、数组和函数.pdf

    - 指针数组是数组中的元素是指针,如`struct UT_TEST_STRUCT *pTo[2][MAX_NUM]`定义了一个二维的指针数组。 - 这样的定义允许动态分配和管理内存,同时提供索引访问的便利性。 6. **指向指针的指针**: - 在处理...

    jidao-chap9 指针与数组(2017).rar_指针与数组教学

    下面的代码展示了如何使用指针遍历并打印数组: ```c int arr[5] = {1, 2, 3, 4, 5}; int *ptr = arr; // ptr指向数组的第一个元素 for (int i = 0; i ; i++) { printf("%d ", *ptr); ptr++; // 移动指针到下一...

    浅析C语言中指针与数组.pdf

    数组指针与指针数组是C语言中两种不同的概念。数组指针指的是一个指向数组的指针,例如int (*p)[n]定义了一个指向包含n个整数的数组的指针。指针数组则是一个数组,其元素本身都是指针,例如int *array[n]定义了一个...

    指针, 指针的指针, 数组, 指针数组, 数组指针, 指针函数, 函数指针 CC++中函数指针的含义

    指针数组是一个数组,其每个元素都是一个指针。比如,`int *p[10];` 定义了一个包含10个整数指针的数组,每个元素可以指向不同的整数变量。 5. **数组指针**: 数组指针是一个指针,它可以指向一个数组。例如,`...

    C语言数组与指针代码精选

    在C语言中,数组是一系列按顺序排列的元素,这些元素都具有相同的类型。例如,整型数组可以存储多个整数,通过索引来访问每个元素。数组定义的一般形式为`类型 名称[大小]`,例如`int arr[5]`创建了一个包含5个整数...

    C语言:数组、指针与字符串(简易入门、精髓)

    在C语言中,数组、指针和字符串是基础且重要的概念,它们构成了C语言的核心特性。数组是一系列相同类型变量的集合,可以是一维、二维或多维的。数组的声明通常采用`类型名 数组名[常量表达式]`的形式,例如`int a[10...

    C语言数组指针(指向数组的指针)_C语言中文网1

    在C语言中,数组是一种非常重要的数据结构,它允许存储一系列具有相同类型的元素。...在深入学习C语言指针时,还会涉及到二级指针、指针数组、字符串指针、函数指针等各种复杂情况,这些都需要逐步学习和实践。

    C语言程序设计数组字符串指针PPT课件.pptx

    - 字符数组:在C语言中,字符串是由字符组成的数组,通常以空字符'\0'结束。例如,`char str[10] = "Hello";` 定义了一个包含5个字符的字符串。 - 字符串处理:C标准库提供了`&lt;string.h&gt;`头文件,包含了处理字符串...

    指针、数组、引用

    标题和描述概述的知识点主要集中在三个关键概念:指针、数组和引用,以及它们之间的联系与区别。以下将深入探讨这些概念,以便更好地理解它们在编程中的应用。 ### 指针 指针是一个存储内存地址的变量,通过指针...

    再再论指针-分析指针与数组的好文

    要提高对指针的理解,推荐阅读《C与指针》这样的经典教材,通过深入学习和实践,掌握指针的正确使用方法。理解指针和数组的差异,以及它们在内存管理和程序设计中的作用,是成为一名熟练的C程序员必不可少的步骤。...

    C高级语言程序设计:07数组与指针.pptx

    ### C高级语言程序设计:数组与指针 #### 数组的概念与使用 - **数组的定义**:数组是一种数据结构,用于存储同一种类型的多个数据元素。这些元素在内存中是连续存储的,并且可以通过索引来访问每一个元素。 - **...

    C语言全套资料 C语言程序设计 C语言算法 C语言课件 C语言顺序程序设计,C语言数组,C语言循环控制,C语言预处理命令,C语言文件操作指针,C语言选择结构程序设计,C语言结构体与共用体,C语言文件操作,C语言函数

    这个压缩包包含了一系列关于C语言的学习资源,涵盖了C语言的基础到高级概念,是学习C语言的理想资料库。 1. **C语言程序设计**:C语言程序设计涉及如何使用C语言编写代码来解决实际问题。它包括基本语法,如变量...

Global site tag (gtag.js) - Google Analytics