以下是一维二维数组,三维数组以此类推.
一维数组:
#include <stdio.h>
//public a method>sum;
void change(int array[],int);
int main(int argc,char *argv[]){
//一维数组不同其他语言的地方.地址
int a[]={1,2};
int c=1;
//>>>>printf 4
size_t leng=sizeof(int);
printf("%u",leng);
//a代表的是一个常量,代表自己的内存地址.
//a相当于&a[0];
printf("\na与&a[0]的内存地址:");
printf("\n%x\n%x",a ,&a[0]);
//相邻的两个数组元素的内存地址差距是该数据的类型的长度
//(类型长度取决与编译器) 例如上面打印的int值为4 则a[0]与a[1]的内存地址相差4
printf("\n&a[0]与&a[1]的内存地址:");
printf("\n%x\n%x",&a[0] ,&a[1]);
//局部变量cc的赋值并不影响c的值
//而啊a,的元素赋值相当于传入一个内存地址 因此值改变了
change(a,c);
printf("\n%d %d",a[1],c);
}
//define a method>sum;
void change(int array[],int cc){
//系统根据数组的地址还有类型的长度获取某个元素的
//内容,从而改变其值.
array[1]=5;
cc=5;
}
二维数组:
#include <stdio.h>
int main(int argc,char *argv[]){
int a[2][2]={1,2,3,4};
int b[2][2]={{1,2},{3,4}};
//元素如下
//a[0][0] a[0][1]
//a[1][0] a[1][1]
//上面二维数组可看成数组a[0],a[1];
//即数组的地址是 a=a[0]=&a[0][0] 验证如下
printf("a a[0] &a[0][0] 的值分别为:\n");
printf("%d %d %d\n",a,a[0],&a[0][0]);
//a[1]的地址等于a[0]加上数组的长度 即int的长度*数组个数
printf("a[1]的地址为:\n");
printf("%d ",a[1]);
}
分享到:
相关推荐
本代码将证明数组名非数组首地址,本代码遵守开源精神,转载请保留作者信息,修改请在History处添加信息
必须掌握C语言中数组_指针与地址相互关系.pdf )
我们定义一个数组,只是在内存中申请了一个连续的地址空间。空间大小是sizeof(data_type)*... dat_type指的是数组元素的数据节本类型,sizeof是C语言的运算符,可以返回一个dat_type的数据占用的地址空间,单位为字节
自己学习过程中记录的一些信息,可能不全C语言学习笔记变量数组指针C语言学习笔记变量数组指针C语言学习笔记变量数组指针C语言学习笔记变量数组指针C语言学习笔记变量数组指针C语言学习笔记变量数组指针
定义一个长度为10的int数组nArr,采用给定初始值或从键盘输入的方式给数组的10个元素赋值;定义一个int *型指针变量pInt,并将nArr的首地址存入pInt中
学习C中级和初级者使用,C 数组 内存使用 结构体等,各种数据类型,库函数,指针使用
所谓数组的指针就是指数组的起始地址(首地址),数组元素的指针则是数组元素的地址。 指向数组的指针 一个数组占用一段连续的内存单元,数组名即为这段连续内存单元的首地址,一个数组元素的地址就是它所占用的几个...
c语言数组 数组可以说是目前为止讲到的第一个真正意义上存储数据的结构。虽然前面学习的变量也能存储数据,但变量所能存储的数据很有限。不仅如此,数组和指针(后续会讲)是相辅相成的,学习数组可以为学习指针打下...
C语言全套资料 C语言程序设计 C语言算法 C语言课件 C语言顺序程序设计,C语言数组,C语言循环控制,C语言预处理命令,C语言文件操作指针,C语言选择结构程序设计,C语言结构体与共用体,C语言文件操作,C语言函数
关于c语言指针的基础知识,为什么要用指针,指针与内存地址对应的关系,指针与数组对应的关系。
2、数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。指针可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常用指针来操作动态内存。 3、当数组作为...
可以看出每一次内存地址的+1操作事实上是一次加sizeof(char*)的操作,我们在32位的系统中sizeof(char*)的长度是4,所以每加1也就是+4,实际上是*a[]内部三个位置的+1,所以*(b+1)的结果自然就是cde了,我们这时候可能会问...
2、数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。指针可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常用指针来操作动态内存。 3、当数组作为...
多维数组中,我们讨论二位数组,二位数组与一位数组在本质没有区别,都是内存一块连续地址。
Linux下用C语言将一个字符串格式(char*)的MAC地址转换为十六进制数组,代码简洁可直接使用
数组在C语言中有着特殊的地位,它有很多特性,例如它的存储是连续的,数组的名称就是数组的地址等。而在C语言中是没有String类型的,那么如果要表示一个字符串,就必须使用字符串数组
最简单的通讯录管理系统:设计一个学生通信录,学生通迅录数据信息构成内容可自行设计(如:姓名、家庭地址、邮政编码、电话号码等等),通信录数据类型定义为结构体类型。 1.主要功能: (1) 能建立、修改和增删学生...
asp网站开发是一门很有趣的课程,这是一本书的pdf版本,从网上下载地址额,希望有
了解数组地址的由来,增加对C语言的了解
今天小编就为大家分享一篇关于C语言二维数组几种常用的表示方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧