数组
#include <stdio.h>
int main() {
int a[10];//定义了一个数组,名字叫a,有10个成员,每个成员都是int类型
//a[0]…… a[9],没有a[10]
//没有a这个变量,a是数组的名字,但不是变量名,它是常量
a[0] = 0;
//……
a[9] = 9;
int i = 0;
for (i = 0; i < 10; i++) {
a[i] = i; //给数组赋值
}
//遍历数组,并输出每个成员的值
for (i = 0; i < 10; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
初始化数组
int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};//定义一个数组,同时初始化所有成员变量
int b[10] = {1, 2, 3};//初始化前三个成员,后面所有元素都设置为0
int c[10] = {0};//所有的成员都设置为0
//[]中不定义元素个数,定义时必须初始化
int d[] = {1, 2, 3, 4, 5};//定义了一个数组,有5个成员
数组名是一个地址的常量,代表数组中首元素的地址
#include <stdio.h>
int main() {
int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};//定义一个数组,同时初始化所有成员变量
printf("a = %p\n", a); //a = 0x7ffee5b2ba60
printf("&a[0] = %p\n", &a[0]); // &a[0] = 0x7ffee5b2ba60
int n = sizeof(a); //数组占用内存的大小,10个int类型,10 * 4 = 40
int n0 = sizeof(a[0]);//数组第0个元素占用内存大小,第0个元素为int,4
int i = 0;
for (i = 0; i < sizeof(a) / sizeof(a[0]); i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
数组逆序
#include <stdio.h>
int main() {
int a[] = {1, -2, 3, -4, 5, -6, 7, -8, -9, 10};//定义一个数组,同时初始化所有成员变量
int i = 0;
int j = sizeof(a) / sizeof(a[0]) - 1;
int tmp;
while (i < j) {
tmp = a[i];
a[i] = a[j];
a[j] = tmp;
i++;
j--;
}
for (i = 0; i < sizeof(a) / sizeof(a[0]); i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
python 直接[::-1]
好香😂
二维数组初始化
//分段赋值 int a[3][4] = {{ 1, 2, 3, 4 },{ 5, 6, 7, 8, },{ 9, 10, 11, 12 }};
int a[3][4] =
{
{1, 2, 3, 4},
{5, 6, 7, 8,},
{9, 10, 11, 12}
};
//连续赋值
int a[3][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
//可以只给部分元素赋初值,未初始化则为0
int a[3][4] = {1, 2, 3, 4};
//所有的成员都设置为0
int a[3][4] = {0};
//[]中不定义元素个数,定义时必须初始化
int a[][4] = {1, 2, 3, 4, 5, 6, 7, 8};
数组名是一个地址的常量,代表数组中首元素(一维数组)的地址。
网友评论