数组
数组的定义:
数组是一组具有相同类型的变量的集合,它是一种顺序存储、随机访问的顺序表结构。
构成数组的 每个数据项被称为数组元素。
C程序通过数组的下标实现的数组元素的访问。
int arr[10]={1,2,3,4,5,6,7,8,9,10}; //定义一个整形数组,最多放10个元素
注:C语言中数组的下标都是从0开始。
一维数组:
格式: 类型 数组名[元素个数]
良好的编程习惯是把数组的长度用宏常量或const常量来定义。
例:int score[SIZE]:
#define SIZE 5
注:在定义数组时不能使用变量定义数组的大小
#include<stdio.h>
#define SIZE 5
int main()
{
int score[SIZE];
int totalScore = 0;
int i;
printf("Input the scores of five students:\n");
for (i = 0; i < 5; i++) {
scanf_s("%d", &score[i]);
totalScore = totalScore + score[i];
}
printf("The average score is %f\n", totalScore / 5.0);
return 0;
}
二维数组:
格式 : 类型 数组名[第一维长度][第二维程度]
二维数组用两个下标确定各元素在数组中的顺序,可用排列成i行j列的元素表示。
#include <stdio.h>
int main() {
// 1. 定义并初始化一个 3 行 4 列的二维数组(存储学生成绩)
int scores[3][4] = {
{90, 85, 92, 88}, // 第 1 行(学生1的4科成绩)
{78, 91, 83, 95}, // 第 2 行(学生2的4科成绩)
{89, 76, 93, 80} // 第 3 行(学生3的4科成绩)
};
// 2. 遍历二维数组(双重循环:行循环 + 列循环)
printf("二维数组(学生成绩表):\n");
for (int i = 0; i < 3; i++) { // i 表示行索引(0~2)
for (int j = 0; j < 4; j++) { // j 表示列索引(0~3)
printf("%d\t", scores[i][j]); // 输出第 i 行第 j 列的元素
}
printf("\n"); // 一行结束后换行
}
// 3. 访问单个元素(例如:第2行第3列的成绩,索引从0开始)
printf("\n第2行第3列的成绩:%d\n", scores[1][2]);
return 0;
}
注:数组第二维的长度声明(列)永远都不能省略。
一维数组在内存中占用的字节数为:数组长度*sizof(基类型)
二维数组在内存中占用的字节数为:第一维长度*第二位长度*sizof(基类型)
操作符
算数操作符
+ - * / %(取余)
移位操作符
>>:右移 ——所有位右移n位,左边补符号位
<<:左移——所有为左移n位,右边补0
位操作符
&(按位与)——对应位都为1则为1,否则为0
| (按位或)——对应位有1则为1,否则为0
^ (按位异或)——对应位不同则为1,相同位0
赋值操作符
= += -= *= /= &= ^= |= >>= <<=
a=a+b; = a+=b;
单目操作符
! ——逻辑反操作
& ——取地址
~ ——对一个数的二进制按位取反
sizeof ——操作数的类型长度
前置 后置(++ --)⬇️
#include<stdio.h>
int main( )
{
int a = 10;
int b = a++; //后置++:先使用,后++
//int b = a; a=a+1;
printf("%d\n",b); //10
printf("%d\n",a); //11
int b = ++a; //前置++:前++,后使用
//int a = a+1; b = a;
printf("%d\n",b); //11
printf("%d\n",a); //11
return 0;
}
729

被折叠的 条评论
为什么被折叠?



