温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

指针和数组

发布时间:2020-06-30 09:32:27 来源:网络 阅读:468 作者:少年不在了 栏目:编程语言

指针:
 指针在本质上是一个变量;指针需要占用一定的内存空间;指针用于保存内存地址的值
*号的意义:
 在指针声明时,*号表示所声明的变量为指针;
 在指针使用时,*号表示取指针所指向的内存空间中的值 ;
 char *p <==> (char *)p //前面的数据类型是修饰指针指向的空间大小,在32位机器中,指针大小为4字节

指针和数组

传值调用与传址调用:
 指针是变量,因此可以声明指针参数
 当一个函数体内部需要改变实参的值,则需要使用指针参数
 函数调用时实参值将复制到形参
 指针适用于复杂数据类型作为参数的函数中

数组:
 相同类型的变量的有序集合

指针和数组
数组的大小:数组在一片连续的内存空间中存储元素,数组元素的个数可以显示或隐式指定
 Int a[5] = {1,2};
 Int b[] = {1,2};
数组地址与数组名:
 数组名代表数组首元素的地址(a);
 数组的地址需要用取地址符&才能得到(&a);
 数组首元素的地址值与数组的地址值相同
 数组首元素的地址与数组的地址是两个不同的概念
数组名的盲点:
 数组名可以看做一个常量指针;
 数组名“指向”的是内存中数组首元素的起始位置;
 在表达式中数组名只能作为右值使用下
 下列场合中数组名不能看做常量指针:
  数组名作为sizeof操作符的参数;数组名作为&运算符的参数

变量 含义
a a为数组首元素的地址;a + 1 <==>(unsigned int)a + sizeof(*a)
&a &a为整个数组的地址; &a + 1 <==>(unsigned int)(&a) + sizeof(*&a)

数组与指针分析 :
 数组的本质:
  数组是一段连续的内存空间;
  空间大小为sizeof(array_type)* array_size;
  数组名可看做指向数组第一个元素的常量指针
 指针的运算 :
指针和数组
 数组的访问形式:

指针和数组
 数组参数:
  数组作为函数参数时,编译器将其编译成对应的指针;
  一般情况下,当定义的函数中有数组参数时,需要定义另一个参数来标示数组的大小

void f(int a[]);  ==>void f(int* a);
void f(int a[5]); ==>void f(int* a);  

 指针和数组的对比:

指针和数组

C语言中的字符串:
指针和数组
指针数组和数组指针分析:
 定义数组类型:

指针和数组

指针和数组

 main函数的参数:
  main函数可以理解为操作系统调用的函数;在执行程序的时候可以向main函数传递参数

指针和数组
多维数组和多维指针:
 指向指针的指针:
  指针变量在内存中会占用一定的空间;可以定义指针来保存指针变量的地址值

 二维数组与二级指针:

指针和数组
数组参数和指针参数分析:
 C语言中的数组参数会退化为指针:
 二维数组参数:

指针和数组
指针和数组
 c语言中无法向一个函数传递任意的多维数组;
 为了提供正确的指针运算,必须提供除第一维之外的所有维长度限制:
  一维数组参数 – 必须提供一个标示数组结束位置的长度信息
  二维数组参数 – 不能直接传递给函数
  三维或更多维数组参数 – 无法使用
函数与指针分析:
指针和数组

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI