C语言知识小锦:下(操作符~结构体)

文章目录​​​​

目录

前言

十、操作符

十一、常见关键字

十二、#define定义常量和宏

十三、指针

十四、结构体(struct)

总结



前言

本篇博客我们会了解一下操作符,常见关键字,#define定义常量和宏,指针以及结构体的相关知识。希望同学们仔细阅读,并勤加练习。


十、操作符

       操作符指的其实就是运算符号,根据操作对象可以把操作符分为三种类型:一元运算符、二元运算符和多元运算符(一般三元)

       接下来我会给你们一一介绍

1.算术操作符+, -, *, /, %

算术操作符相当于我们数学中所学的加(+)减(-)乘—(*)除(/)取余(%)等运算

#include<stdio.h>
int main()
{
    printf("%d",7/3);//输出2
    printf("%f",7.0/3);//输出2.33333....
    printf("%d",7%3);//输出1
    return 0;
}

2.移位操作符》,《

左移n位就是把这个数转为二进制后 后面加n个零 前面的n位舍弃
右移n位就是把这个数转为二进制后 前面加n个零 后面的n位舍弃

值得注意的是,移位操作符移动的是二进制位

3.赋值操作符=,+=,-=,*=,/=,&=,^=,|=,《=,》=

举个例子来说,a+=1相当于a=a+1,剩下的也是一个道理

#include<stdio.h>
int main()
{
    int a=0;//初始化a变量
    a=20;//给a赋值
    a+=10;//将a+10的结果赋值给a
    printf("%d",a);//输出30
}

4.位操作符&,^,|

5.单目操作符!,-,+,&,sizeof,~,--,++,*,(类型)

-,+ 指的是取正取反操作

~ 是对一个数的二进制按位取反

* 是间接访问操作符(解引用操作)

(类型) 是强制类型转换操作

//在C语言中,0表示假,1表示真
int flag=0;
if(!flog)
{
    printf("hello");//输出hello
}
若int flag=0;
if(!flog)
{
    printf("hello");//不输出hello
}
//flag是单目操作符
#include<stdio.h>
int main()
{
   int a=10;
   printf("%d",sizeof(a));//输出4
   printf("%d",sizeof(int));//输出4
   return 0;
}
//sizeof为是一个判断数据类型或者表达式长度的运算符,不是函数
#include<stdio.h>
int main()
{
   int a=3.14;
   printf("%d",a);//输出3
   int a=(int)3.14;
   printf("%d",a);//输出3,将3.14强制类型转换为int型
   return 0;
}

6.关系操作符>,>=,<,<=,!=,==

//判断两数是否相等
#include<stdio.h>
int main()
{
   int a=10;
   if(a=5)//赋值运算符
   printf("1");//输出1
   if(a==5)
   printf("1");//不输出
   return 0;
}

7.逻辑运算符&&逻辑与,||逻辑或

#include<stdio.h>
int main()
{
   int a=3,b=4;
   if(a==3&&b==4)
   printf("123");//输出123
   return 0;
}
#include<stdio.h>
int main()
{
   int a=5,b=4;
   if(a==3&&b==4)
   printf("123");//不输出123
   if(a==3||b==4)
   printf("123");//输出123
   return 0;
}

8.条件运算符exp1?exp2:exp3

该运算符是在我们目前所接触的C语言中唯一的三目操作符

exp1若为真,则运算exp2  总体结果为exp2

exp1若为假,则运算exp3  总体结果为exp3

if(a>b)
  m=a;
else
  m=b;
即可用
m=a>b?a:b
代替

9.逗号表达式exp1,exp2,exp3,...expN

#include<stdio.h>
int main()
{
   int a=3;
   int b=20;
   int c=0;
   int d=(a-=3,b+=a,c=a-b,b=a-4);
   printf("%d",d);输出-4
   return 0;
}
//表达式会从左向右依次计算,但整个表达式的结果是最后一个表达式的结果

10.([]下标引用,()调用操作符,. ->结构成员

//实现输出两数中的最大值
#include<stdio.h>
int get_max(int x,int y)
{
   if(x>y)
   return x;
   if(x<y)
   return y;
}
int main()
{
   int m=get_max(3,5);
   printf("%d",m);//输出5
}

十一、常见关键字

auto   registern-寄存器   volatile   if else   go to   break   case   default    continue   while   char   int   long   float   double   signed-有符号的   typedef-类型重命名   void-无/空   unsigned-无符号的   const   extern-声明外部符号   sizeof    enum-枚举关键字   struct-结构体   union-联合体   return-返回(函数中使用)

十二、#define定义常量和宏

1.定义常量

#include<stdio.h>
#define MAX 1000
int main()
{
   int m=MAX;
   printf("%d",m);//输出1000
   return 0;
}

2.定义宏

#include<stdio.h>
#define MAX(x,y) (x>y?x:y)
int main()
{
   a=10;
   b=20;
   int m=MAX(a,b);
   printf("%d",m);//输出20
   return 0;
}
//宏的代码可为多条语句

十三、指针

1.指针变量

1.在内存中,一个内存单元是一个字节

2.内存单元是有编号的,编号就是内存单元的地址,也叫指针

3.%p:地址

#include<stdio.h>
int main()
{
   int a=10;
   int* pa=&a;//pa指向的对象是int型
   *pa=100;
   printf("%d",a);//输出100
   return 0;
}
//pa是用来存放地址的,所以我们把pa叫做指针变量

#include<stdio.h>
int main()
{
   char ch='w';
   char* pc=&ch;//取地址操作符
   *pa='q';//*解引用操作符,它的意思是通过pc中存放的地址,找到pc指向的内容
   printf("%c",ch);//输出q
   return 0;
}

//值得注意的是*&p=p

2.指针变量的大小

#include<stdio.h>
int main()
{
   char ch='w';
   int a=10;
   int* pa=&a;
   char* pc=&ch;
   printf("%d",sizeof(pa));//输出4
   printf("%d",sizeof(pc));//输出4
   return 0;
}
//32位平台sizeof(指针)总是4
//64位平台sizeof(指针)总是8

十四、结构体(struct)

结构体是由一批数据组合而成的结构型数据。组成结构型数据的每个数据称为结构型数据的“成员”,其描述了一块内存区间的大小及解释意义。


总结

以上就是今天要讲的全部内容啦

《C语言知识小锦》也算就此完成了

后续我还会发布一些在《C语言知识小锦》中没有详细讲到到的内容

欢迎老铁们的收听和观看

蟹蟹

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>