C语言初阶-操作符-常见关键字-结构体

目录

一、操作符(接上篇文章未讲完的操作符)

二、常见关键字

三、结构体

一、操作符(接上篇文章未讲完的操作符)

6、关系操作符

>>=<<=!===
大于大等于小于小等于不等于等于

注:不是所有关系都可以用这些操作符比较的。

7、逻辑操作符

&&||
逻辑与(并且)逻辑或(或者)

&&这个操作符:两个操作数都为真,才为真,只要有一个为假,则为假。

||这个操作符:两个操作数只要有一个为真,则为真,两个同时为假,才为假。

8、条件操作符

exp1 ? exp2 : exp3(也叫三目操作符)

若epx1为真,则exp2执行,exp3不执行。

若epx1为假,则exp2不执行,exp3执行。

#include<stdio.h>
int main()
{
    int a = 0;
    int b = 0;
    scanf("%d %d",&a,&b);
    (a>b) ? m = a : m = b;
    /*if(a>b)
        m = a;
      else
        m = b;*/        //表达相同,可以通过这个理解上面内容
    printf("%d",m);
    return 0;
}

9、逗号表达式

exp1,exp2,exp3,...expN
逗号表达式,是从左向右依次计算的,逗号表达式的结果是最后一个表达式的结果。
#include<stdio.h>
int main()
{   
    int a = 3;
    int b = 2;
    int c = 5;
    int d = (a+=3, b=5, c=a+b, c-4);
            //a=6   b=5  c=11   7
    printf("%d\n",d);
    return 0;
}

10、下标引用,函数调用和结构成员

下标引用函数调用结构成员
[]().    ->

二、常见关键字

autobreakcasecharconst

continue

defaultdodoubleelseenumextern
floatforgotoifintlong
registerreturnshortsignedsizeofstatic
structswitchtypedefunionunsignedvoid
volatilewhile

注:用户自己不能创建关键字。

auto 自动     extern 声明外部符号     register 寄存器      struct也是用来修饰变量的

循环:break   continue   do while   for   while

分支:break   switch case   default(默认)   if else    goto

数据类型:char   double   float   int   long   short   void

修饰类型:const   signed(有符号的)   unsigned(无符号的)   typedef(类型重定义)

自定义类型:enum(枚举类型)  struct(结构体类型)  union(联合体类型)

函数的返回: return(返回值)

计算机变量/类型 大小的 单位是字节:sizeof

void  ---函数的返回值、函数的参数、修饰指针

1、关键字typedef

typedef unsigned int u_int;
int main()
{
    unsigned int num = 0;
    u_int num2 = 0;

    return 0;
}

2、关键字static

作用:1、修饰局部变量 称为静态局部变量。

           2、修饰全局变量 称为静态全局变量。

           3、修饰函数 称为静态函数。

接下来举个例子证明:

#include<stdio.h>
void test()
{
    int a = 5;
    a++;
    printf("%d", a);
}
int main()
{
    int i = 0;
    while(i<10)
    {
        test();
        i++;
    }
    return 0;
}

此时打印出来的结果为:6 6 6 6 6 6 6 6 6 6,主函数执行到text()时,执行上面那个void test(),执行完后继续从text后面执行,又因为a为局部变量进函数创建出函数后销毁。

#include<stdio.h>
void test()
{
    static int a = 5;
    a++;
    printf("%d", a);
}
int main()
{
    int i = 0;
    while(i<10)
    {
        test();
        i++;
    }
    return 0;
}

此时打印出来的结果为:6 7 8 9 10 11 12 13 14 15。static修饰局部变量的时候,本来一个局部变量是存放在栈区的,被static修饰后,就储存到了静态区,static修饰局部变量改变了局部变量的存储类型(位置),使得这个静态变量的生命周期延长了,直到程序结束才结束。

注:虽然生命周期变长了,但是作用域不变。

拓展知识:C,C++代码学习的时候,我们把内存大概分为3个区域:堆区、栈区、静态区。

注:静态区变量的特点:创建好后,直到程序结束才会销毁(还给操作系统) 。

       全局变量具有外部链接属性。


static修饰全局变量时候,会改变这个全局变量的链接属性,由外部链接属性变成内部链接属性,此时在同一程序的其他源文件就不能再使用这个变量了,作用域变小了。

3、关键字#define定义常量和宏

定义常量

#define M 100

int main()
{
    int arr[M] = {0};
    int m = M;
    return 0;
}

#define ADD(x, y) ((x)+(y))

int main()
{
    int a = 10;
    int b = 20;
    int c = ADD(a, b);
    printf("%d",c);
    return 0;      //打印的结果是30
}

宏很像函数

三、结构体

C语言引入了结构体来描述复杂对象。

举个例子

struct Book
{
    char name[20];
    char author[10];
    float prict;
}

int main()
{
    struct Book b = {"《知识》","xu","66.6f"};
    printf("%s %s %f\n",b.name, b.author, b.prict);

    return 0;
}

好了,今天的内容就到这边了,关于结构体的内容,下篇文章会和指针一起讲。求个三连!

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值