C语言(二 运算符、条件语句、指针)

C运算符
包括算数运算符,逻辑运算符,关系运算符,位运算符,赋值运算符,其他运算符。
算术运算符
就是加减乘除求余,自增自减等算术。
逻辑运算符
与:&&,或:||,非:!
关系运算符
等于,大于,小于等组合
位运算符
位与:&,位或:|,位左移<<,位右移>>,异或:^,取反:~。
赋值运算符
+=,-=,=等算术运算符的组合
其他运算符
&:变量地址符,?: :条件运算符,
:指针,sizeof():变量占内存大小

条件语句
if,if…else,switch,?: (三元运算符)
循环语句
for,while,do…while
函数
首先要有函数声明,要告诉编译器函数返回值类型,参数类型。
调用函数时,有两种传参方式,传值调用和引用调用,前者是直接把值赋给形式参数,在函数内改变形参的值不改变实际变量的值,后者形参是指向实参地址的指针,改变形参就会改变相应的实参。
C作用域
在函数或块内声明的变量是局部变量,函数外访问不到。
在函数外声明的变量为全局变量,任何地方都能访问到。
形式参数在函数内充当局部变量,在函数内局部变量会覆盖同名的全局变量。
数组
内存中地址连续的类型相同的数据的集合
例int stars[ ] ={2,5,7,6,3,4}
starts是指向数组第一个元素地址的指针,*stars为2 *(stars+1)为5,
Enum枚举

enum Day{
	Mon,Tue,Wes,Thu,Fri,Sat,Sun
	}day;
	day = Mon;  //day值为0,
	

枚举变量值依次加一,若没有定义初始变量的值,那么它就是0。

指针
指针其实也是一个变量,储存的是变量在内存中的地址,例如int *p 表示定义p为指向int类型的指针,在没有地址可以赋给它时,最好把它设为NULL。

int var  =20;
int *p =&var;
printf("Address of var variable: %p\n", &var  );
 
   /* 在指针变量中存储的地址 */
   printf("Address stored in ip variable: %p\n", p );    // 结果为bffd8b3c
 
   /* 使用指针访问值 */
   printf("Value of *ip variable: %d\n", *p );    //结果为20
 

指针的运算
1、自增自减
int *p ++;
若p指向内存位置1000,执行完以上语句就会变为1004,整数四个字节。若p为指向字符类型的指针,执行上面语句会变为1001。
2、比较大小
比较的是地址的前后,后面的大于前面的
3、循环数组
利用自增自减循环去除数组的值

C语言允许指针指向指针,定义需要两个星号 int **p = NULL;
当然,指针也可以用作函数参数和返回类型。
函数指针
指针变量是用来存储变量地址的变量,函数指针是指向函数的指针变量。
函数指针可以用作回调函数

void int get(int a,int b) ;
int *p (int ,int )  = &get;
p(1,5);     //调用get函数

猜你喜欢

转载自blog.csdn.net/weixin_42927264/article/details/82875131
今日推荐