1、数组的定义数组:一组相同类型元素的集合
10年积累的成都做网站、成都网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先做网站设计后付款的网站建设流程,更有洪泽免费网站建设让你可以放心的选择与我们合作。
3种定义数组的方式:
1、数据类型 数组名 [ 数组长度 ];
2、数据类型 数组名 [ 数据长度 ] = {值1,值2,值3…};
3、数据类型 数组名 [ ] = {值1,值2,值3…};
定义一个整型数组
int arr1 [5];
int arr2 [5] = {10,20,30,40,50 }; //若初始赋值没赋全,系统默认补0
int arr3 [] = {90,80,70,60,50,40,30,20,10 }; //在有赋值的情况下,若不写数组长度,系统会自动根据所赋值的个数计算出数组长度
2、数组下标注:数组 arr [ X ],X必须为常量,不能是变量!
C语言规定:数组的每个元素都有一个下标,下标是从0开始的
int arr[10] = {0};
//如果数组有10个元素,下标的范围是 0 ~ 9
3、数组的使用//数组一般搭配循环使用
#includeint main()
{int i = 0;
int arr[10]; //定义一个整型数组
for(i=0; i<10; i++) //输入数组
{scanf("%d", &arr[i]);
}
for(i=0; i<10; i++) //输出数组
{printf("%d ", arr[i]);
}
return 0;
}
4、数组的长度#define _CRT_SECURE_NO_WARNINGS 1
#include#includeint main()
{//字符串数组:
char arr[] = "abcdef";
printf("%d\n", strlen(arr)); //6
printf("%d\n", sizeof(arr)); //7
printf("%d\n", sizeof(arr) / sizeof(arr[0])); //7
//整型数组
int arr1[] = {1,2,3,4,5,6 };
printf("%d", sizeof(arr1) / sizeof(arr1[0])); //6
return 0;
}
2、操作符注:用 sizeof 算字符串数组长度,会把字符串末尾的 /0 也算作一个数组元素
(1)算术操作符
+ - * / %
(2)移位操作符(移动的是二进制位)
>><<
(3)位操作符(操作的是二进制位)
& ^ |
(4)赋值操作符
= += -= *= /= &= ^= |= >>=<<=
(5)单目操作符
(6)关系操作符
(7)逻辑操作符
(8)条件操作符(三目运算符)
exp1 ? exp2 : exp3
(9)逗号表达式
exp1, exp2, exp3, …expN
(10)下标引用、函数调用和结构成员
[] () . ->
三目运算符:
m = (a >b ? a : b);
// 等价于:
// if (a >b)
// m = a;
// else
// m = b;
逗号表达式:
int main()
{int a = 3;
int b = 5;
int c = 0;
int d = (a+=3,b-=a,c=a+b,c-2);
// 6 -1 5 3
printf("%d\n", d); //3
return 0;
}
3、常见关键字注:逗号表达式会从左向右依次计算,整个表达式的结果,是最后一个表达式的结果。
signed 【 有符号的(10 \ -20…)】
unsigned ( 无符号的 )unsigned int a = 50;
union ( 联合体 / 共用体 )
void ( 无 / 空 )
auto ( 自动的 - 每个局部变量都是auto修饰的 )auto int b = 10; // auto一般自动省略
register( 寄存器关键字 )register int c = 100; //建议num的值存放在寄存器里
typedef ( 类型重定义 )
typedef unsigned int u_int; //将 unsigned int 重命名为 u_int
unsigned int a = 100;
u_int b = 500;
printf("a = %d\n", a); //100
printf("b = %d\n", b); //500
1、static修饰局部变量static ( 静态的变量 )
void test()
{int a = 5;
static int b = 5; //static 修饰
a++;
b++;
printf("%d ", a); // 6 6 6 6 6 6 6 6 6 6
printf("%d ", b); // 6 7 8 9 10 11 12 13 14 15
}
int main()
{int i = 0;
while (i< 10)
{test();
i++;
}
return 0;
}
2、static修饰全局变量
- static修饰局部变量【改变了局部变量的生命周期,(本质上改变了变量的存储类型)】
- 【本来局部变量是放在栈区的,被static修饰后存成在内存的静态区了,因为存储类型的 >改变,从而导致生命周期变长。但是:不影响作用域】
- 让静态局部变量出了作用域依然存在,到程序结束,生命周期才结束。
3、static修饰函数
- static修饰全局变量【使得这个全局变量只能在自己所在的源文件中使用,其他源文件不能使用,不能用extern调用】
- 【全局变量在其他源文件可以被使用,是因为全局变量具有外部连接性】
- 【但是被static修饰之后,就变成了内部连接性,其他文件不能连接到这个静态的全局变量】
4、define定义常量和宏
- static修饰函数【使得这个函数只能在自己所在的源文件中使用,其他源文件不能使用,不能用extern调用】
- 【全局函数在其他源文件可以被使用,是因为全局函数具有外部连接性】
- 【但是被static修饰之后,就变成了内部连接性,其他文件不能连接到这个静态的全局函数】
#include//define定义的标识符常量(没有 = 号)
#define MAX 1000
//define定义的宏 - 有参数
#define ADD(x, y) ((x)+(y))
//int ADD(int x, int y)
//{// return x + y;
//}
int main()
{int sum = ADD(2, 3);
printf("sum = %d\n", sum); // 5
sum = 10*ADD(2, 3);
printf("sum = %d\n", sum); // 50
return 0;
}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧