赞
踩
数组是一种构造类型,是由基本类型构造而成。当我们想用一群变量来描述同一类相同的东西时候,比如100个年龄变量,我们可以这样int age1;int age2;int age3;……int age 100;这样即不方便书写,也不方便管理,此时数组就出现了,int age[100]就能搞定。
构造类型带来了书写和管理的方便。接下来我们要研究其定义,大小,初始化和访问。
凡是构造类型,要么在初始化的时候初始化, 要么对集合中的每个元素单独初始化。定义以后,不可以再以初始化的方式初始化。凡是基础数据类型,既可以在定义的时候初始化,也可以先定义后初始化。
2.2.2 一维数组的逆置
### 2.3 数组和指针
1.数组名是一个常量,不允许重新赋值。
2.指针变量是一个变量,可以重新赋值。
3.p+i 和 array+i 均表示数组元素 array[i]的地址,均指向 array[i]
4.*(p+i)和*(array+i)均表示 p+i 和 array+i 所指对象的内容 array[i]。
5.*p++:等价于*(p++)。其作用:先得到*p,再使 p=p+1。
#include <stdio.h> int main() { int array[10] = { 1,2,3,4,65,6,12,13,14,15 }; int* p = &array; printf("array=== %p\n", &array); printf("p === %p\n", p); int len = sizeof(array) / sizeof(array[0]); for (int i = 0; i < len; i++) { // array+i 和p+i 指向的都是地址 array[i]的地址 // *(array+i) 和*(p+i) 指向的内容 ====array[i] // printf("arr[%d] = %d\n", i, array[i]); // printf("arr[%d] = %d\n", i, *(array + i)); // printf("arr[%d] = %d\n", i, *(p + i)); // *(p++) == *p++ 先获取*p p=p+1 // printf("arr[%d] = %d\n", i, *(p++)); printf("arr[%d] = %d\n", i, *p++); /* code */ } return 0; }
字符指针可直接赋值为字符串,保存的实际上是字符串的首地址
这时候,字符串指针所指向的内存不能修改,指针变量本身可以修改
strcpy
strcat
strcmp
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。