理解:一级指针,二级指针,指针和数组,指针数组。

本文深入解析了指针和数组的基本概念,包括一级指针、二级指针的定义及使用,数组的创建与初始化,以及指针数组的概念。通过实例说明了数组名实际上代表的是数组首元素的地址,并详细解释了指针如何指向数组元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、指针:
指针是一个变量,用来存放地址的变量.(存放在指针中的值都被当成地址处理)
指针的大小在32位平台是4个字节,在64位平台是8个字节

#include<stdio.h>
#include<stdlib.h>
int main(){
 int a = 10;         //在内存中开辟一段空间
 int * p = &a;  //我们对变量a取出它的地址,将a的地址存放在p变量中,p就是一个指针变量
 
 system("pause");
 return 0;
}

1、一级指针:
一级指针就是指指针,里面放的就是元素的地址,我们可以通过访问元素的地址来找到该地址里存放的内容,即元素本身。
2、二级指针
指针变量也是变量,是变量就有地址,二级指针就可以存放指针变量的地址。
例如:

#include<stdio.h>
#include<stdlib.h>
int main(){
 int a = 10; 
 int *pa = &a;  // a的地址存放在pa中, pa是一级指针
 int **ppa = &pa; //  pa的地址存放在ppa中    ppa是二级指针
 
 system("pause");
 return 0;
}

二、数组:
数组是一组相同类型元素的集合
创建实例:int arr1[ ]
初始化实例:int arr1={1,2,3}; char arr2={‘a’,‘b’,‘c’};
.其中[ ]中要给一个常量才可以,不能使用变量。
三、指针和数组
数组名是什么?

#include<stdio.h>
#include<stdlib.h>
int main(){
 int arr[10] = {1,2,3,4,5,6,7,8,9,0};
 printf("%p\n",arr);
 printf("%p\n",&arr[0]);
 
 system ("pause");
 return 0;
}

在这里插入图片描述
可见数组名和数组首元素的地址是一样的,其实,数组名表示的就是数组首元素的地址。
那么这样也是对的:
int arr[]={1,2,3,4,5,6,7,8,9,0};
int *p=arr;
其中p存放的就是首元素的地址。

四、指针数组
指针数组其实是一个数组,是存放指针的数组
例如:int*arr[5];
arr是一个数组,里面有五个元素,每个元素都是一个整形指针

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值