Linux C 数组与指针
1.数组的基本概念
在程序设计中,为了方便处理,把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。
数组(Array)也是一种复合数据类型,它由一系列相同类型的元素(Element)组成。
1.1数组的定义
一维数组:二维数组:
1.2数组的使用
数组定义的时候作为一个整体定义的,但是用的时候不能作为整体来使用,使用时,必须拆开使用数组中的各个元素。
比如,数组 int a[10]={1,2,3,4,5,6,7,8,9,0};使用其中的元素时,需用a[0],a[1]..a[9]表示,[]是数组的标志,[]中的数字表示数组的下标,也叫索引。下标是0代表数组的第一个元素,1代表第二个,以此类推。如果是n个元素,最后一个元素的下标为n-1。
访问数组时要注意下表,下标是从0开始,如果下边超出了n-1,会产生越界访问①,结果是不可预期的。
1.3数组的初始化
数组的初始化是为了让对象有一个初始的预定状态,数组的初始化分为两种
第一种:完全初始化。依次赋值。
第二种:不完全初始化,初始化中的值从a[0]开始赋值,不足的用0填充赋值。
2.指针的基本概念
所谓指针式用来指示一个内存地址的计算机语言的变量或中央处理器中的寄存器。指针一般指向一个函数或一个变量,在使用一个指针时,一个程序既可以直接使用这个指针所储存的内存地址,又可以使用这个地址里储存的变量或函数值。
2.1指针的定义
int i;
int *pi=&i;
char c;
char *pc=&c;
这里的&是取地址运算符,
&i表示取变量i的地址,
即: 类型说明符 *指针名=&变量名;
int *pi=&i; 表示定义一个指向int型的指针变量pi,并用i的地址来初始化pi。
在同一语句中定义多个指针变量,每一个都要有*号
如: int *p,*q;
如果要让pi指向另一个整型j,可以重新对pi赋值:pi=&j;。
如果要改变pi所指向的整型变量的值,比如把变量j的值增加10,可以写成: *pi=*pi+10;。
指针之间可以相互赋值,也可以用一个指针初始化另一个指针,如:int *ptri=pi;
表示pi指向哪里,就让ptri也指向哪里,本质上就是把变量pi所保存的地址值赋值给变量ptri。
用一个指针给另一个指针赋值时要注意,两个指针必须是同一类型的。如果不是需要先强制类型转换,然后赋值
如:pi=(int *) pc;
2.2指针简单的使用
以下内容在VS中书写。
2.3指针变量作为函数参数
函数的参数不仅可以是整型,实型,字符型等,也可以是指针类型。
它的作用就是将一个变量的地址传送到另一个函数中。
例:
结果: