注:
scanf函数返回的是:实际读到的数据的个数
scanf 函数读取失败的时候,返回的是EOF
EOF - end of file 文件结束标志
1.函数
例子:
int Add(int x,int y)
{
int z=0;
z=x+y;
return z;
}
int main()
{
int num1=0;
int num2=0;
int sum=0;
//输入
scanf("%d %d",&num1,&num2);
//求和
sum=Add(num1,num2);
//输出
printf("%d\n",sum);
return 0;
函数的优点就是可以重复使用,方便快捷
2.数组
要存储1-10的数字,怎么存储?
C语言中给了数组的定义:一组相同类型元素的集合
//1~10
//数组的概念 - 数组中可以存放一组相同类型的元素
//数组 - 一组相同类型元素的集合
//数组的创建和初始化
int arr1[10]={1,2,3,4,5,6,7,8,9,10};
int arr2[10]={1,2,3,4,5};//不完全初始化,剩余的默认初始化为\0
char ch[5]={'a','b','c'};//不完全初始化,剩余默认初始化为\0
2.1数组定义
int arr[10] = {1,2,3,4,5,6,7,8,9,10};//定义一个整形数组,最多放10个元素
2.2数组下标
C语言规定:数组的每个元素都有一个下标,下标是从0开始的。
数组可以通过下标来访问的。
比如:int arr[10] = {0}; //如果数组10个元素,下标的范围是0-9
2.3数组的使用
#include <stdio.h>
int main()
{
int i = 0;
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
for(i=0; i<10; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
int arr1[10]={1,2,3,4,5,6,7,8,9,10};
int i=0;
while(i<10)
{
printf("%d\n",arr1[i];
i=i+1;
}
//结果:1 2 3 4 5 6 7 8 9 10
3.操作符
int arr[10] = {0};
//如果数组10个元素,下标的范围是0-9
#include <stdio.h>
int main()
{
int i = 0;
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
for(i=0; i<10; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
算术操作符
+ - * / %
// /-除号
// % (取模(取余),%操作的两个操作数必须是整数
//除号的两端如果都是整数,执行的是整数除法
//除号的两端至少有一个数是浮点数,才能执行浮点数的除法
//结果:2.500000
int main()
{
float n=10/4.0;
printf("%f\n",n);
return 0;
int main()
{
int a=0;//初始化,创建变量的同时给一个值,这叫初始化
a=20;//赋值
a=a+5;
a+=5;
a=a*10;
a*=10;
return 0;
}
移位操作符
>> <<
位操作符
& ^ |
赋值操作符
= += -= *= /= &= ^= |= >>= <<=
单目操作符
! 逻辑反操作
- 负值
+ 正值
& 取地址
sizeof 操作数的类型长度(以字节为单位)
~ 对一个数的二进制按位取反
-- 前置、后置--
++ 前置、后置++
* 间接访问操作符(解引用操作符)
(类型) 强制类型转换
int main()
{
//(类型) - 强制类型转换
int a=(int)3.14;这里只取整数部分
printf("%d\n",a);
return 0;
}
关系操作符
>
>=
<
<=
!= 用于测试“不相等”
== 用于测试“相等”
//真假
//C语言中
//0就是假
//非0表示真
int main()
{
int flag=5;
if(flag)
{
printf("hehe\n");
}
return 0;
}
逻辑操作符
&& 逻辑与
|| 逻辑或
条件操作符
exp1 ? exp2 : exp3
逗号表达式
exp1, exp2, exp3, …expN
下标引用、函数调用和结构成员
[] () . ->
int main()
{
int arr[10]={1,2,3,4,5,6,7,8,9,0};
printf("%d\n",arr[4]);//[]下标引用操作符
return 0;
}
4.常见关键字
auto break case char const continue default do double else enum
extern float for goto if int long register return short signed
sizeof static struct switch typedef union unsigned void volatile while
C语言提供了丰富的关键字,这些关键字都是语言本身预先设定好的,用户自己是不能创造关键字的。