数据结构与算法基础之指针和数组

指针和数组:

  指针和一维数组:

     数组名:

       一维数组名是个指针常量 它的值不能被改变 它存放的是一维数组里第一个元素的地址 一维数组名指向的是数组的下标为0的第一个元素。

下标和指针的关系:

1 a[i]<<==>>*(a+i)<<==>>*(i+a)<<==>>i[a]  //符号表示等价于
1 #include<stdio.h>
2 int mian(){
3     int a[5];
4     printf("%p,%p",a,a+1);//%p以十六进制输出存放的前两个数组元素的地址,地址是连续的
5     return 0;
6 } 

(一个字节就是一个地址,int类型四个字节,double八个字节,char一个字节,所有的指针变量只占用4个字节,用第一个字节的地址表示整个变量的地址)

如何通过被调函数修改主调函数中一维数组的内容:

  两个参数:

     1.存放数组首元素的指针变量

      2.存放数组长度的整型变量

 1 #include<stdio.h>
 2 void arry(int* p,int len){
 3     int i;
 4     for(i = 0;i<len;i++){
 5         printf("%d\n",p[i]);
 6     }
 7 }
 8 int main(){
 9     int a[5]={1,2,3,4,5};
10     arry(a,5);//传递数组名,别忘了还有数组长度
11     return 0;
12 }

原文地址:https://www.cnblogs.com/sunbr/p/11247344.html

时间: 2024-07-31 00:57:58

数据结构与算法基础之指针和数组的相关文章

数据结构与算法基础学习笔记

*********************************************            ---算法与数据机结构--- 数据结构:由于计算机技术的发展,需要处理的对象不再是纯粹的数值,还有像字符,表,图像等具有一定结构的数据,需要用好的算法来处理这些数据. 我们把现实中大量而又复杂的问题以特定的数据类型的特定的存储结构保存到主存储器中,以及在此基础上为实现某个功能而执行的相应操作(查找排序),这个相应的操作也叫算法. 数据结构 = 个体 +个体的关系算法 =对存储数据的操

数据结构与算法基础 模块一

在软件水平考试中,数据结构与算法基础的相关内容是考试上午进行的,那么,接下来将对有关数据结构的内容进行整理和归纳,以便于在整个的软考准备阶段能够更加清楚和有效率的进行学习和回忆. 以下均为个人针对于数据结构的相关内容的整理,后期根据深入的程度不断地完善和改进,如果有什么错误或者不足,希望可以提出来,一起进步. 常用的数据结构:      数组(静态数组,动态数组),线性表,链表(单向链表,双向链表,循环链表),队列,栈,树(平衡数,二叉树,查找树,堆,线索树),图等的定义,存储和操作,HASH(

数据结构与算法基础

数据结构与算法基础: 顺序存储结构 链式存储结构 什么是树结构?为什么使用树结构?树的基本概念 二叉树: 任何一个节点的子节点数量不超过2 二叉树的子节点分左节点和右节点 满二叉树:所有的叶子节点都在最后一层,而且节点总数为2的n次方-1[n是树的高度]完全二叉树:所有叶子节点都在最后一层或者倒数第二层,且最后一层的叶子节点在左边连续,倒数第二节的叶子节点在右边连续 数组在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来.这些按序排列的同类数据元素的集合称为数组.在C语言

【C++基础】 指针&amp;字符串&amp;数组

先贴代码,总结以后再写,和5中内存分配方式密切相关 PS: str 返回整个字符串,str[0],*str返回首字符h char *strA(){ char str[]="hello!"; //局部数组,局部变量, str存在栈区 return str; //局部变量不能传值,估计会成为野指针 //函数返回局部变量的地址,当被调用完成时,str就释放了,因此返回结果是不确定的且不安全的 } char *strA2(){ char *str = "hello2!";/

《数据结构与算法之美》 &lt;03&gt;数组:为什么很多编程语言中数组都从0开始编号?

提到数组,我想你肯定不陌生,甚至还会自信地说,它很简单啊. 是的,在每一种编程语言中,基本都会有数组这种数据类型.不过,它不仅仅是一种编程语言中的数据类型,还是一种最基础的数据结构.尽管数组看起来非常基础.简单,但是我估计很多人都并没有理解这个基础数据结构的精髓. 在大部分编程语言中,数组都是从 0 开始编号的,但你是否下意识地想过,为什么数组要从 0 开始编号,而不是从 1 开始呢? 从 1 开始不是更符合人类的思维习惯吗? 你可以带着这个问题来学习接下来的内容. 如何实现随机访问? 什么是数

数据结构与算法基础之概述、指针与内存

数据结构的定义 我们如何把现实中大量而复杂的问题以特定的数据类型和特定的存储结构保存到主存储器(内存)中,以及在此基础上为实现某个功能(比如查找某个元素,删除某个元素,对所有元素进行排序而执行的相应操作,这个操作也叫算法) 数据结构 = 个体 + 个体的关系 算法 = 对存储数据的操作 衡量算法的标准: 时间复杂度:大概程序要执行的次数,而非执行的时间 空间复杂度:算法执行过程中大概所占用的最大内存 难易程度 健壮性 内存的基本概念: 1.内存是用来存储数据的设备.它的存储速度介于寄存器和硬盘之

C基础--二重指针和数组指针

#include <stdio.h> int main1(void) { int a = 3; int b = 8; int *p = &a; // int* p = &a; int **q; // int** q; q = &p; **q = 10; *q = &b; **q = 5; p = &b; *p = 9; printf("a = %d\tb = %d\n", a, b); return 0; } //void fun(c

数据结构与算法基础 模块六

简单选择排序: 设所排序序列的记录个数为n.i取1,2,-,n-1,从所有n-i+1个记录(R,R[i+1],-,R[n]中找出排序码最小的记录,与第i个记录交换.执行n-1趟 后就完成了记录序列的排序. 代码如下: public  void SimpleSelect() { int[] inputIntArray = new int[8] { 8, 4, 7, 5, 2, 3, 6, 1 }; for (int i = 1; i < inputIntArray.Length; i++) { i

数据结构之算法基础

算法:  大O表示法: 代码(求出数组中出现次数最多的数字): 原文地址:https://www.cnblogs.com/souhaite/p/11030245.html