//
// Created by 87572 on 19/4/15.
//
#include "part1.h"
/**
* K1:==============================================================
* 数组介绍.数组就是连续的内存.
*
*/
void print_array(int arr[], int len) {
for (int i = 0; i < len; ++i) {
cout << "arr[ " << i << " ]" << arr[i] << endl;
}
}
void init_arrary() {
int arr1[] = {1, 2, 3, 4, 5};
int arr2[5] = {1, 2};
int arr3[5] = {1};
print_array(arr1, 5);
print_array(arr2, 5);
print_array(arr3, 5);
}
/**
* K2:==============================================================
*计算数组大小
* sizeof(array)数组所占空间的总大小
* sizeof(array)/sizeof(element)数组的length大小
*
*/
void cal_size_array() {
int arr[10] = {1};
cout << "array total size: " << sizeof(arr) << endl;
cout << "array length: " << sizeof(arr) / sizeof(int) << endl;
}
/**
* K3:==============================================================
* 数组的名 int arr[] ; arr就是常量指针,指向的就是数组首元素.(传递数据最合理)
* arr与int*的区别: 1.arr当作形参的时候,退化成指针.
* ----------------2.sizeof(arr) 取得是整个数组的大小.
* ----------------3.&arr 是数组指针.
* &arr,则是数组指针. int (*p) [10]; 这个也是指向的首地址,但是步长是整个数组大小;
* important:
* ----int (*p) [10]=&arr;
* ----int *q=*p;
* 指针并不是简单的取所在地址的内容,还要看指针的类型.虽然数组指针指向的是一个int,
* 但是解引用之后,是一个int*,是因为他是一个数组指针.所以仍是int *;
*/
void real_of_array() {
int arr[10] = {1};
printf("&arr, %d\n ", &arr);
printf("&arr[0], %d\n ", &arr[0]);
int (*p)[10] = &arr;
printf("int (*p) [10], %d\n ", p);
int *q = *p;
}
/**
* K4:==============================================================
* 二维数组
* 二维数组也是连续的空间.数组名代表了首数组的数组指针.
*
*/
void print_two_array(int arr[][3], int len1, int len2) {
for (int i = 0; i < len1; ++i) {
for (int j = 0; j < len2; ++j) {
cout << "arr" << arr[i][j] << endl;
}
}
}
void define_two_array() {
int arr[2][3] = {
{1, 2, 3},
{4, 5, 6}
};
int (*p)[3] = arr;
print_two_array(arr, 2, 3);
}
/**
* K5:==============================================================
* 数组逆置
*/
void inverse_array() {
int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9,10};
int start = 0;
int end = 9;
while (start < end) {
int tmp = arr[start];
arr[start] = arr[end];
arr[end] = tmp;
++start;
--end;
}
for (int i = 0; i <10; ++i) {
cout<<"inverse array : "<<arr[i]<<endl;
}
}
C学习:07-数组
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 写代码也要读书,爱全栈,更爱生活。每日更新原创IT编程技术及日常实用视频。 我们的目标是:玩得转服务器Web开发,...