一、数组:一组相同类型的元素集合
数组的下标从0开始……
#include<studio.h>
{
int arr[10]={1,2,3,4,5,6,7,8,9,0};有多少个元素,[ ]中就是多少
数组类型
printf("%d",arr[ 4 ]);下标引用操作符,这里表示引用第五个元素
return 0;
}
其中如果[]里的数字比较大,而{}里的数字又没有那么多时,就会不完全初始化,如:
int arr[5]={1,2,3} [5]表示有5个元素,而{}内只有3个元素,就称为不完全初始化,此时剩下的两个元素会默认为 0
char ch[5]={'a','b','c'} 此时不完全初始化,剩下的默认为 \0
二、求和函数
对于初学者来说,一般会写成:
#include <stdio.h>
int main()
{
int num1=0;
int num2=0;
int sum=0;
scanf("%d %d",&num1,&num2);
sum=(num1+num2);
printf("%d\n",sum);
return 0;
}
代码没问题但不实用,不如简化成函数,可以循环利用:
#include<stdio.h>
{
int Add(int x,int y)
{
int z=x+y;
return 0;
}
}
也可以简化成
int Add (x,y)
return(x+y);
三、操作符
- 算术操作符 + - * / %
- 移位操作符 >> <<
- 位操作符 & ^ |
- 赋值操作符 =
- 复合操作符 += -= *= /= %= &= ^= |= >>= <<=
- 单目操作符 ! + - & -- ++ (类型)
- 关系操作符 > >= < <= |=(不等) ==(区别于=,"=="是判断,"="是赋值)
- 逻辑操作符(只关注真假) &&(并且,两边同时为真才为真) ||(或者,两边同时为假才为假)
- 条件操作符 exp1?exp2:exp3
!逻辑反操作
#include<stdio.h>
#define _CRT_SECURE_NO_WARNINGS 1
int main()
{
int a = 0;
scanf("%d", &a);
{
if (a >= 0)
printf("hehe");\\如果a的值大于等于0,则打印hehe
if (!(a >= 0))
printf("haha");\\如果a的值小于0(不大于等于0),则打印haha
}
return 0;
}
++a前置
a++后置
int main() { int a=100; int b=a++;//先使用后++,a=101,b=100 int c=++a;//先++后使用,a=101,c=101 printf("%d %d %d",&a &b &c); return 0; }
(类型)强制转化
int main() { int a=int(3.14);//int类型是整型,不能打印出小数,而int(3.14)强行转化类型后打印只取整数部分 printf ("%d\n",&a); return 0; }
条件操作符
exp1 ? exp2 : exp3
a>b ? a : b
若exp1为真,exp2执行,exp3不执行
若exp1为假,exp2不执行,exp3执行
int main() { int a = 0; int b = 0; int m = 0; scanf("%d %d", &a & b); if (a > b) m = a; else m = b; m = (a > b ? a : b); printf("%d\n", m); return 0; }
四、常见关键字(变量不能是关键字)
类型 | 循环 | 分支语句 | 声明外部符号 |
auto | break | if | extern |
char | continue | else | |
int | do | switch | 寄存器 |
short | while | case | register |
long | for | break | |
float | default | 返回(在函数中用) | |
double | go to | return | |
signed(有符号) | |||
unsigned(无符号) | 计算所占内存大小 | ||
static | sizeof | ||
void | |||
union(联合体类型) | |||
struct(结构体类型) | |||
typedef |