C语言指针和数组
#include <stdio.h>
int main()
{
/*********************************************
*
* 指针和数组:
* 定义数组:数组名就是数组第一个元素的地址
* int ages[5];
* int *p;
* p = ages;
* 访问数组元素的方法:
* 1、数组名[下标] ages[i]
* 2、指针变量名[下标] p[i]
* 3、*(p + i)
*
* 指针变量+1,地址值究竟加多少,取决于指针的类型
* int * 4
* char * 1
* double * 8
*
**********************************************/
int arr[] = {,,,,};
//指针变量此时指向的是数组的首元素
int *p = arr;
printf("数组名[下标]访问数组元素:\n");
for (int i=; i<; i++)
{
printf("arr[%d] = %d\n", i, arr[i]);
}
printf("指针变量名[下标]访问数组元素:\n");
for (int i=; i<; i++)
{
printf("arr[%d] = %d\n", i, p[i]);
}
printf("*(p + i)访问数组元素:\n");
for (int i=; i<; i++)
{
printf("arr[%d] = %d\n", i, *(p + i));
} printf("指针变量+1,地址值究竟加多少,取决于指针的类型:\n"); int c = ;
float d = 11.0f;
double e = 12.0;
char f = 'A';
int *pi = &c;
float *pf = &d;
double *pe = &e;
char *pch = &f;
printf("int类型的指针加1的地址:\n");
printf(" int类型当前地址是:%p\n",&c);
printf(" int类型加1后地址是:%p\n",pi + ); printf("float类型的指针加1的地址:\n");
printf(" float类型当前地址是:%p\n",&d);
printf(" float类型加1后地址是:%p\n",pf + ); printf("double类型的指针加1的地址:\n");
printf(" double类型当前地址是:%p\n",&e);
printf(" double类型加1后地址是:%p\n",pe + ); printf("char类型的指针加1的地址:\n");
printf(" char类型当前地址是:%p\n",&f);
printf(" char类型加1后地址是:%p\n",pch + ); return ;
}
数组名[下标]访问数组元素:
arr[] =
arr[] =
arr[] =
arr[] =
arr[] =
指针变量名[下标]访问数组元素:
arr[] =
arr[] =
arr[] =
arr[] =
arr[] =
*(p + i)访问数组元素:
arr[] =
arr[] =
arr[] =
arr[] =
arr[] =
指针变量+,地址值究竟加多少,取决于指针的类型:
int类型的指针加1的地址:
int类型当前地址是:0022feb8
int类型加1后地址是:0022febc
float类型的指针加1的地址:
float类型当前地址是:0022feb4
float类型加1后地址是:0022feb8
double类型的指针加1的地址:
double类型当前地址是:0022fea8
double类型加1后地址是:0022feb0
char类型的指针加1的地址:
char类型当前地址是:0022fea7
char类型加1后地址是:0022fea8
C语言指针和数组的更多相关文章
- C语言指针和数组知识总结(上)
C语言指针和数组知识总结(上) 一.指针的基础 1.C语言中,变量的值能够通过指针来改变,打印指针的语句符号可以是: %08x 2.指针的本质 指针的本质就是变量,那么既然是变量,那么一定会分配地址 ...
- C语言指针与数组
C语言指针与数组 数组的下标应该从0还是1开始? 我提议的妥协方案是0.5,可惜他们未予认真考虑便一口回绝 -- Stan Kelly-Bootle 1. 数组并非指针 为什么很多人会认为指 ...
- C语言指针与数组的定义与声明易错分析
部分摘自<C语言深度解剖> 1.定义为数组,声明为指针 在文件1中定义: char a[100]; 在文件2中声明: extern char *a; //这样是错误的 这里的extern告 ...
- 11-C语言指针&一维数组&字符串
一.用指针遍历数组元素 1.最普通的遍历方式是用数组下标来遍历元素 1 // 定义一个int类型的数组 2 int a[4] = {1, 2, 3, 4}; 3 4 int i; 5 for (i = ...
- c语言指针,数组
指针:说简单点就是一个地址.例如int *p,p是个变量,里面放的是地址0x0000,同理,每一个指针,不管什么类型,都是地址,也就是空间都是4个字节(32位机). 以此类推,指针也有指向它的指针in ...
- c语言 指针与数组
关键概念: 1.多个不同类型的指针可以对应同一个地址: 2.(&p)则是这样一种运算,返回一个指针,该指针的值是当时声明p 时开辟的地址,指针的类型是p的类型对应的指针类型: 3.(*p)操作 ...
- C语言指针和数组知识总结(下)
一.数组指针: 数组指针就是一个指针,只不过它指向的是一个数组.可以通过如下方式来定义 typedef int Array[5]; //数组类型 Array* m; //数组定义 还有一种更 ...
- C语言核心之数组和指针详解
指针 相信大家对下面的代码不陌生: int i=2; int *p; p=&i;这是最简单的指针应用,也是最基本的用法.再来熟悉一下什么是指针:首先指针是一个变量,它保存的并不是平常的数据,而 ...
- 指针与数组的区别 —— 《C语言深度剖析》读书心得
原书很多已经写的很清楚很精炼了,我也无谓做无意义的搬运,仅把一些基础和一些我自己以前容易搞混的地方写一下. 1. 意义: 指针: 指针也是一种类型,长度为4字节,其存放的内容只能是一个地址(4字节). ...
随机推荐
- python 3和python 2 的不同之 f - strings
python3.6版本及以上版本才能使用 f "{}{}{}" f-string 格式化输出
- 结对编程(四则运算题目生成器core第七组)对接心得
在这篇博客博主想记录一下此次结队编程作业中与ui组对接的心得.在这里我也想表达一下对涂涵越同学的敬佩,他遇到困难时孜孜不倦求解的毅力着实让我佩服,我们在dll的生成上遇到了很大的困难,要不是他的坚持我 ...
- Springmvc集成CXF请看教程二
转自: http://www.cnblogs.com/xiaochangwei/p/5399507.html 继上一篇webService入门之后,http://www.cnblogs.com/xia ...
- springMVC+freemarker整合
转自:http://angelbill3.iteye.com/blog/1980904 在springMVC的项目中,加入freemarker 1.首先导入springMVC-webmvc所需的JAR ...
- Java的HashMap和Hashtable有什么区别HashSet和HashMap有什么区别?使用这些结构保存的数需要重载的方法是哪些?
HashMap与Hashtable实现原理相同,功能相同,底层都是哈希表结构,查询速度快,在很多情况下可以互用 两者的主要区别如下 1.Hashtable是早期JDK提供的接口,HashMap是新版J ...
- http核心模块 node
ttp超文本传输协议* 协议至少双方 -> http双方!! * 客户端(浏览器) -> 服务器 BS - 原生应用(QQ) -> 服务器 CS * 就是数据如何传输 * 特点: * ...
- Yii2 搜索
搜索的形式: 第一种,点击空白处: <?php $data=['0'=>'已删除','10'=>'正常','1'=>'锁定']; ?> <table style=' ...
- Linux环境下安装PHP的memced扩展
先下载libmemcached: wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.t ...
- elementUI表格行的点击事件,点击表格,拿到当前行的数据
1.绑定事件 2.定义事件 3.点击表格某行的时候,拿到数据]
- bzoj1211树的计数 x bzoj1005明明的烦恼 题解(Prufer序列)
1211: [HNOI2004]树的计数 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3432 Solved: 1295[Submit][Stat ...