目录
前言
祝大家新年快乐!
一、略识函数
int Add(int x, int y)//int为函数返回类型,Add为函数名,括号内为函数接收形参及其类型
{
int z = x + y;
return z;
}
int main()
{
int sum = 0;
sum = Add(10, 20);//函数的调用
printf("%d\n", sum);
return 0;
}
二、略识数组
一组相同类型元素的集合。
整型数组的定义方式:
int main()
{
//注:数组的下标是从0开始的
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };//定义一个存放是个整型数字的数组,并存放后面括号的十个数字
char ch[20];//定义一个存放20个字符的数组
float arr2[5];//定义一个存放五个浮点型数据的数组
printf("%d\n", arr[4]);//打印arr数组里第五位元素
return 0;
}
打印数组中所有元素用循环:
int main()
{
int arr[5] = { 1,2,3,4,5 };
int i = 0;
while(i < 5)
{
printf("%d ", arr[i]);//数组访问用下标,下标从0开始
i++;//每次循环i给自身加一
}
return 0;
}
三.操作符(简单介绍)
1.算术操作符
加:+ 减:- 乘:* 除:/ 取模:%
2.移位操作符
左移<< 右移>> (移的是二进制位)
例子:
int main()
{
int a = 1;//整型1占四个字节-32个bit位
//00000000000000000000000000000001
int b = a << 1;//b将等于2,其为00000000000000000000000000000010,是由a的二进制表示向左移了一位所得到的,但a本身并没有变
int c = a << 2;//同理,c就等于4
printf("%d\n", b);
printf("%d\n", c);
return 0;
}
3.位操作
& ——按位与,即二进制对应位,全为1则为1,否则为0
| ——按位或,只要有一个是1,就为1
^ ——按位异或,对应的二进制位相同则为0,对应的二进制位相异则为1
例子:
int main()
{
int a = 3;//011
int b = 5;//101
int c = a & b;//001,c=1
int d = a | b;//111,d=7
int e = a ^ b;//110,e=6
return 0;
}
4.赋值操作符
= += -= *= /= &/ ^= |= >>= <<= 蓝色为复合赋值符
如 a=20中=为赋值操作符,a = a+10与a += 10是一样的,后面原理同前。
5.单目操作符
即操作对象只有一个的操作符。
!为逻辑反操作,如printf(“%d\n”,!a)中,若a=10,则输出为0,若a=0,则输出为1。!a就是把原来的a=10,变成假。a=0变成真。(注,在C语言中,0为假,非零为真)。
sizeof():
int a=10; printf(“%d\n”,sizeof(a));中sizeof()计算的是变量或者类型所占空间的大小,单位是字节,也可以用sizeof()计算数组所占的字节数,然后除以数组中第一个元素所占的字节数,就可以得到数组中的元素个数。
- 负值 +正值 &取地址
~对一个数的二进制按位取反
例子:
int main()
{
int a = 0;//000000000000000000000000000000000
int b = ~a;//11111111111111111111111111111111
printf("%d\n", b);//输出是负一(看不懂没事,涉及原码,反码,补码后期笔记会写)
return 0;
}
++前置和后置++
例子:
int main()
{
int a = 0;
int b = a++;//后置++,先将a的值赋给b,然后a再加一,打印后a是11,b是10
int a = 10;
int b = ++a;//++前置,a先加一,再赋值给b,打印后a与b都是11
return 0;
}
--前置和后置--,用法同上。
*间接访问操作符(解引用操作符),用来调用指针,后期笔记分享!
(类型) 为强制类型转换。
例子:
int main()
{
int a = (int)3.14;//由于3.14本身是双精度类型,直接赋值会报错,但是加括号可将其类型强制转换
return 0;
}
6.双目操作符
下面我们用一个例子来说明什么是双目操作符:
int main()
{
int a = 10;
int b = 20;
a + b;//+就是一个操作符,+左边有一个操作数,右边也有一个操作数,所以+为双目操作符
return 0;
}
关系操作符也是双目操作符,常见关系操作符有:
> < >= <= 不等于:!= 判断:==
逻辑操作符也是双目操作符,常见有:
&&逻辑与(并且),例子:
int main()
{
int a = 3;
int b = 5;
int c = a && b;//c等于1,a为真且b为真,则a&&b为真
return 0;
}
||逻辑或(至少有一个为真,为真)
7.三目操作符
条件操作符
exp1 ? exp2 : exp3 表达式1的结果如果为真,则表达式2被执行,且表达式2的值就是整个式子的值,如果表达式1为假,则表达式3被执行,且表达式3的值是整个式子的值。
例子:
int main()
{
int a = 100;
int b = 20;
int max = 0;
max = (a > b ? a : b);//输出为100
return 0;
}
逗号表达式
exp1,exp2,exp3,...expN
逗号表达式, C语言提供一种特殊的运算符,逗号运算符,优先级别最低,它将两个及其以上的式子联接起来,从左往右逐个计算表达式,整个表达式的值为最后一个表达式的值。如:(3+5,6+8)称为逗号表达式,其求解过程先表达式1,后表达式2,整个表达式值是表达式2的值,如:(3+5,6+8)的值是14;a= (a=3*5,a*4)的值是60,其中a=(3*5,a*4)的值是60,a的值在逗号表达式里一直是15,最后被逗号表达式赋值为60,a的值最终为60。