数组初始化
#include <stdio.h>
int main()
{
int arrayint [6] = { 0,1,2,3,4,5 };
for (size_t i = 0; i < sizeof(arrayint) / sizeof(int); i++)
{
printf("arrayint[%d] = %d \n", i, arrayint[i]);
}
return 0;
}

image.png
函数,数组,指针
#include <stdio.h>
int arraysum(int *, int);
int main()
{
int arrayint [6] = { 0,1,2,3,4,5 };
printf("summary is %d", arraysum(arrayint, sizeof(arrayint) / sizeof(int)));
return 0;
}
int arraysum(int * first, int length) {
int summary = 0;
for (size_t i = 0; i < length; i++)
{
summary += first[i];
}
return summary;
}

image.png
使用指针形参
#include <stdio.h>
#define SIZE 6
int arraysum(int *, int);
int main()
{
int arrayint [SIZE] = { 0,1,2,3,4,5 };
printf("use zhihen summary is %d", arraysum(arrayint, arrayint + SIZE));
return 0;
}
int arraysum(int * first, int * last) {
int summary = 0;
while (first < last)
{
summary += *first; // 数组首个元素
first++; // 数组指针后移一位
}
return summary;
}

image.png
指针操作
#include <stdio.h>
#define SIZE 6
void printline(void);
int main()
{
int arrayint [SIZE] = { 0,1,2,3,4,5 };
int * ptr1, *ptr2, *ptr3;
ptr1 = arrayint; //数组的首地址
ptr2 = &arrayint[2]; // 数组第三个元素的地址
printf("ptr1 is :%p *ptr1 is :%d &ptr1 is :%p \n", ptr1, *ptr1, &ptr1);
printline();
//指针加法
ptr3 = ptr1 + 3;
printf("ptr1+3 is :%p *(ptr1 + 3) is :%d\n", ptr1+3, *(ptr1 + 3));
printline();
//一个指针减去另一个指针
printf("ptr3 is :%p (ptr3 - ptr1) is :%p", ptr3, (ptr3 - ptr1));
return 0;
}
void printline(void) {
for (size_t i = 0; i < 10; i++)
{
putchar('*');
}
putchar('\n');
}

image.png
通过指针改变数组内容
#include <stdio.h>
#define SIZE 6
void printline(void);
void printarray(int *, int length);
void multi_array(int *, int length, int mult);
int main()
{
int arrayint [SIZE] = { 0,1,2,3,4,5 };
printarray(arrayint, SIZE);
multi_array(arrayint, SIZE, 3);
printline();
printarray(arrayint, SIZE);
return 0;
}
void printarray(int *array, int length) {
for (size_t i = 0; i < length; i++)
{
printf("%d", array[i]);
}
putchar('\n');
}
void multi_array(int * array, int length, int mult) {
for (size_t i = 0; i < length; i++)
{
array[i] *= mult;
}
}
void printline(void) {
for (size_t i = 0; i < 10; i++)
{
putchar('*');
}
putchar('\n');
}

image.png
网友评论