文章目录
声明在前
图中用于展示程序代码的软件是Visual Studio 2019 社区版,在微软官网即可下载,本人目前是大四,非计算机专业学生,零基础学编程系列为本人自学笔记及心得,文章中如有错误,欢迎各位批评指正,希望与大家一起学习进步。
1.函数
分为库函数和自定义函数
函数特点:简化代码,代码复用
例:简单的加法函数
int ADD(int x,int y)//定义在main函数之前
{
int z=x+y;
return z;
}
int main()
{
int a=1;
int b=2;
sum=ADD(a,b);//直接引用
printf("%d\n",sum);
return 0;
}
2.数组
数组:一组相同数据类型元素的集合
int b[]={1,2,3};
int a[4]={0};//即{0,0,0,0,}
int arr[10]={1,2,3,4,5,6,7,8,9,10};//定义一个存放10个整数数字的数组
printf("%d\n",arr[4]);//打印的是数组中下标为4的数据,即5
在内存名为arr的空间中,每个数据都有对应的下标,下标从0开始;数组元素个数为常量,不能为变量;
数据:1,2,3,4,5,6,7,8,9,10
下标:0,1,2,3,4,5,6,7,8,9
int i=0;
while(i<10)//将数组中所有数据都打印出来
{
printf("%d\n",arr[i]);
i++;
}
3.操作符
(1)算术操作符:+ - * / %
int a=5/2;//输出商,输出2
int b=5%2;//取模,取余,输出1
(2)移(2进制)位操作符:>> <<
int a=1;
int b=a<<1;//即a的二进制表示左移一位,输出2;
int c=a<<2;//即a的二进制表示左移两位,输出4;
整型数值1占4个字符,即32bit位;
原数:00000000 00000000 00000000 00000001 =1
左移:00000000 00000000 00000000 00000010 =12^1=2
两位:00000000 00000000 00000000 00000100 =12^2=4
注:若移位操作后并未重新赋值给a,则a值不变,仍为1
(3)(2进制)位操作符:& ^ |
——> &:按位与(两同为真,则为真)
int a=3;
int b=5;
int c=a&b;
printf("%d\n",c);//c为1
a:0 1 1
b:1 0 1
c:0 0 1
——> |:按位或(其一为真,则为真)
int a=3;
int b=5;
int c=a|b;
printf("%d\n",c);//c为7
a:0 1 1
b:1 0 1
c:1 1 1
——> ^:按位异或(两者相同,则为假;两者相异,则为真)
int a=3;
int b=5;
int c=a^b;//不是次方,是异或
printf("%d\n",c);//c为6
a:0 1 1
b:1 0 1
c:1 1 0
(4)赋值操作符: = += -= *= /= &= ^= |= <<= >>=
int a=1;
a=2;//赋值,==为判断
复合赋值符
a=a+1;
a += 1;//二者等价
a=a-1;
a -= 1;//二者等价
a=a&1;
a &= 1;//二者等价
(5)单目操作符
说明:单目操作符(一个操作对象)、双目操作符(两个操作对象,如:a+b)、三目操作符
——> ! 取反
int a=1;
printf("%d\n";a);//输出1
printf("%d\n";!a);//输出0
注:在C语言中,我们用0表示假,用非0表示真
-负值+正值(+一般情况下直接省略)
int a=-2;
int b=+3
——> & 取地址
sizeof 操作数的变量 / 类型长度(以字节为单位)
int a=1;
printf("%d\n",sizeof(a));//变量的括号可省略,类型的括号不可省略
printf("%d\n",sizeof(int));//两者等价
int arr[3]={1,2,3};//数组大小等于每个元素大小*元素个数,
printf("%d\n",sizeof(arr)/sizeof(arr[0]));//可用于计算数组元素个数,等于3
——> ~ 对一个数的二进制按位取反
int a=0;//00000000 00000000 00000000 00000000
int b=~a;//11111111 11111111 11111111 11111111
printf("%d\n",b);//-1
b是有符号的整型,第一位为0表示正数,第一位为1表示负数;
负数在内存中存储的时候,存储的是二进制的补码;使用的,打印的是原码
原码按位取反得到反码,反码+1得到补码
补码:11111111 11111111 11111111 11111111
反码:11111111 11111111 11111111 11111110(反码转换原码,符号不变)
原码:10000000 00000000 00000000 00000001
——> – 前置、后置–
——> ++ 前置、后置++
int a=1;
int b=a++;//后置++,先使用,再++
int b=++a;//前置++,先++,再使用
——> * 间接访问操作符(解引用操作符)
——> (类型) 强制类型转换
int a=(int)3.14;//double——>int 不建议使用
(6)关系操作符 > >= < <= != ==
(7)逻辑操作符 && ||
——> &&:逻辑与
int a=1;//非0为真
int b=2;//0为假
int c=a&&b;//二者为真则为真1,其一为假则为假0
——>||:逻辑或
int a=0;//非0为真
int b=2;//0为假
int c=a&&b;//其一为真则为真1,两者为假则为假0
(8)条件操作符 exp1? exp2:exp3 (三目操作符)
int a=1;
int b=2;
int max=0;
if(a>b?)//max=(a>b?a:b);
max=a;
else
max=b;
(9)逗号表达式 exp1,exp2,exp3……exp4
(10)下标引用[ ]、函数调用 ( ) 和结构成员
结构成员:
(1).
表示结构体变量.成员
(2)->
表示结构体指针->成员
至此,本部分结束。因为对编程及计算机语言没有太多的基础,所以写的过于详细,主要作为我个人的学习记录,也希望能帮到跟我一样零基础但是想学习编程的同学。