瘋子C语言笔记(指针篇)

指针篇

4.数组a 的性质

int a[3][4] = {{1,3,5,7},{9,11,13,15},{17,19,21,23}}

int 型数据在KEIL编译环境下,占2字节内存


表示形式


含义


地址


a


二维数组名,指向一位数组a[0],即0行首地址


设2000


a[0]、*(a+0)、*a


0行0列元素地址


2000


a+1,&a[1]


1行0列元素地址


2008


a[1]、*(a+1)


1行0列元素a[1][0]的地址


2008


a[1]+2、*(a+1)+2、&[1][2]


1行2列(即a[1][2])元素地址


2012


*(a[1]+2)、*(*(a+1)+2),a[1][2]


1行2列(即a[1][2])元素值


元素13

(1)为什么*(a+1)表示第一行的首地址呢?

答:*(a+x)==a[X]; 两者等价。

(2)那么C语言中是怎么造成*(a+x)与a[X]完全等价呢?

答:在一位数组中,*a就是a[0],a+1指向a[1],a+2指向a[2],a+3指向a[3],也就是说

*(a+1)、*(a+2)、*(a+3)分别是a[1]、a[2]、a[3]。在实际代码生成机械码的关系中,两个效应完全等价。

                                                              下次更新时间2014.09.12

                                                              新的理解和见解可留言相互交流,共同学习  

时间: 2024-10-08 18:04:10

瘋子C语言笔记(指针篇)的相关文章

瘋子C语言笔记(结构体/共用体/枚举篇)

 (一)结构体类型 1.简介: 例: struct date { int month; int day; int year; }; struct student { int num; char name[20]; char sex; int age; struct date birthday; /*birthday 是 struct date 类型*/ char addr[30]; }student1,student2; (1):结构体可嵌套 (2):与枚举相比结构体内元素为变量,而枚举为常

瘋子C语言笔记 (string)

1.strstr() 函数 搜索一个字符串在另一个字符串中的第一次出现.找到所搜索的字符串,则该函数返回第一次匹配的字符串的地址:如果未找到所搜索的字符串,则返回NULL. 2.strcat() 函数 用来连接字符串,其原型为:     char *strcat(char *dest, const char *src); [参数]dest 为目的字符串指针,src 为源字符串指针. strcat() 会将参数 src 字符串复制到参数 dest 所指的字符串尾部:dest 最后的结束字符 NUL

瘋耔java语言笔记

--------------------

小猪猪C++笔记基础篇(六)参数传递、函数重载、函数指针、调试帮助

小猪猪C++笔记基础篇(六) ————参数传递.函数重载.函数指针.调试帮助 关键词:参数传递.函数重载.函数指针.调试帮助 因为一些事情以及自己的懒惰,大概有一个星期没有继续读书了,已经不行了,赶紧写一篇压压惊.把我文章抱走的同学留个言嘛. 函数在变成里面是一个非常重要的组成部分,那么这一部分我们先简单的介绍一下参数是如何传递进入函数,函数如何返回结果的.然后我们再来看看函数重载是个什么样的机制,最后在介绍一下所谓的函数指针到底是个什么东西.那么直接开始正题吧: 一.函数的参数传递 我们知道函

瘋子C++笔记、

瘋子C++笔记 1.C++输入.输出.头文件解释 #include<iostream> using namespace std ; int mian() { cout << “Thie is a C++ program”; return 0: } 程序运行结果:Thie is a C++ program (1)"<<"的作用是将引号中的内容插入到输出的队列cout中(输出队列也称作“输出流”)相当于C语言中的printf. (2)标准C++规定mai

瘋子C_C++笔记

指针篇 1.基本指针变量 (1)定义 int i,j; int *pointer_1,*pointer_2; pointer_1 = &i; pointer_2 = &j; 等价于 int *pointer_1 = &i,*pointer_2 = &j; (指针误区: 大家首先应该知道,指针是地址,是不可变的:指针变量(上述定义的pointer_1为指针变量)是变量,变量是可变的,和通常的变量相比,它存放的量CPU会当地址来处理) ---------------------

Vue学习笔记入门篇——组件的内容分发(slot)

本文为转载,原文:Vue学习笔记入门篇--组件的内容分发(slot) 介绍 为了让组件可以组合,我们需要一种方式来混合父组件的内容与子组件自己的模板.这个过程被称为 内容分发 (或 "transclusion" 如果你熟悉 Angular).Vue.js 实现了一个内容分发 API,使用特殊的 'slot' 元素作为原始内容的插槽. 编译作用域 在深入内容分发 API 之前,我们先明确内容在哪个作用域里编译.假定模板为: <child-component> {{ messa

Vue学习笔记入门篇——组件的通讯

本文为转载,原文:Vue学习笔记入门篇--组件的通讯 组件意味着协同工作,通常父子组件会是这样的关系:组件 A 在它的模版中使用了组件 B.它们之间必然需要相互通信:父组件要给子组件传递数据,子组件需要将它内部发生的事情告知给父组件.然而,在一个良好定义的接口中尽可能将父子组件解耦是很重要的.这保证了每个组件可以在相对隔离的环境中书写和理解,也大幅提高了组件的可维护性和可重用性.在 Vue 中,父子组件的关系可以总结为 props down, events up.父组件通过 props 向下传递

《javascript权威指南》读书笔记——第二篇

<javascript权威指南>读书笔记--第二篇 金刚 javascript js javascript权威指南 今天是今年的196天,分享今天的读书笔记. 第2章 词法结构 2.1 字符集 JavaScript程序是用Unicode字符集编写. Unicode是ASCII和Latin-1的超集,支持几乎所有语言. ES3 要求支持Unicode 2.1及后续版本 ES5 要求支持Unicode 3及后续版本 2.1.1 区分大小写 JavaScript是区分大小写的. HTML 并不区分大