【初识C语言】笔记(1-3)

简介: 【初识C语言】笔记(1-3)

1.操作符

1.1算数操作符


注: / 除法,得到的是商

      除法操作符的两端如果都是整数,执行的是整数除法,只要有一个浮点数则执行浮点型除法

      %取模,得到的是余数,%只能作用于整数

1.2位移操作符


1.3位操作符


按位与,按位异或,按位或

1.4赋值操作符



1.5单目操作符

#include <stdio.h>
int main()
{
  int flag = 3;
  //C语言中,0表示假,非0表示真
  //flag为真打印hehe
  if (flag)
  {
    printf("hehe\n");
  }
  //flag 为假,打印haha
  if (!flag)
  {
    printf("haha\n");
  }
  return 0;
}


后置--,先使用,再--,前置--,先--,再使用

后置++,先使用,再++,前置++,先++,再使用

#include <stdio.h>
int main()
{
int a = 10;
int b = a--;//后置--,先使用,再--
printf("a=%d b=%d\n", a, b);//9 10
return 0
}


强制类型转换:()里放想要转换的类型


1.6关系操作符


1.7逻辑操作符

逻辑与:并且,操作符两边全部满足条件

逻辑或:或者,操作符两边有一个满足条件即可

1.8条件操作符(三目操作符)

exp1 ? exp2: exp3


如果exp1为真,则exp2为整个表达式的结果;如果exp1为假,则exp3为整个表达式的结果

#include <stdio.h>
int main()
{
  int a = 3;
  int b = 5;
  int m = 0;
  scanf("%d %d", &a, &b);
  m = (a > b ? a : b);//条件操作符/三目操作符
  printf("%d\n", m);
  return 0;
}


1.9逗号表达式

exp1, exp2, exp3, …expN


逗号表达式的特点:表达式从左向右依次计算,但是整个表达式的结果是最后一个表达式的结果。

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

[]   ()   .   ->


   arr  [4]  中[ ]为下标访问操作符,arr和4是[ ]这个操作符的操作数


Add(a,b)中( )为函数调用操作符,Add,a,b为( )这个操作符的操作数

2.常见关键字

C语言提供了丰富的关键字,这些关键字都是语言本身预先设定好的,用户自己是不能创造关键字的。

return  -函数中返回值


2.1关键字typedef

typedef 顾名思义是类型定义,这里应该理解为类型重命名。


例如:

//将unsigned int 重命名为uint, 所以uint也是一个类型名
typedef unsigned int uint;
int main()
{
    //观察num1和num2,这两个变量的类型是一样的
    unsigned int num1 = 0;
    uint num2 = 0;
    return 0;
}


2.2关键字static

在 C 语言中:

static 是用来修饰变量和函数的

1. 修饰局部变量 - 称为静态局部变量

2. 修饰全局变量 - 称为静态全局变量

3. 修饰函数 - 称为静态函数

2.2.1 修饰局部变量


//代码1
#include <stdio.h>
void test()
{
    int i = 0;
    i++;
    printf("%d ", i);
}
int main()
{
 int i = 0;
    for(i=0; i<10; i++)
   {
        test();
   }
    return 0;
}
//结果为1 1 1 1 1 1 1 1 1 1
//代码2
#include <stdio.h>
void test()
{
    //static修饰局部变量
    static int i = 0;
    i++;
    printf("%d ", i);
}
int main()
{
int i = 0;
    for(i=0; i<10; i++)
   {
        test();
   }
    return 0;
}
//结果为1 2 3 4 5 6 7 8 9 10

对比代码1和代码2的效果理解static修饰局部变量的意义。


结论:


一个普通的局部变量是放在栈区的,而被static的修饰的局部变量,是放在内存的静态区的


存储位置发生了变化,使得局部变量出了作用域不会销毁,影响了变量的生命周期


作用域不受影响

2.2.2修饰全局变量


结论:

static修饰全局变量这时全局变量的外部链接属性就变成了内部链接属性,只能在自己所在的.c文件内部使用,其他.c文件无法使用,影响了变量的作用域。

2.2.3修饰函数


结论:


函数是具有外部链接属性的,static 修饰函数 后,函数的外部链接属性就变成了内部链接属性,被static修饰的函数只能在自己所在的.c文件内使用,其他.c文件无法使用,最终相当于影响了作用域

目录
相关文章
|
7月前
|
存储 人工智能 算法
【C语言】自学终极笔记
【C语言】自学终极笔记
110 0
|
4月前
|
测试技术 C语言 C++
【C语言刷题训练——6】鹏哥C语言刷题训练营笔记,含代码讲解改进
【C语言刷题训练——6】鹏哥C语言刷题训练营笔记,含代码讲解改进
|
4月前
|
存储 C语言
【C语言】鹏哥C语言刷题训练营——第5节内容笔记(含代码全面分析和改进,讲解)
【C语言】鹏哥C语言刷题训练营——第5节内容笔记(含代码全面分析和改进,讲解)
|
6月前
|
C语言
|
6月前
|
C语言
|
7月前
|
C语言
C语言(指针详解)重点笔记:指针易错点,都是精华
C语言(指针详解)重点笔记:指针易错点,都是精华
86 0
|
存储 编译器 C语言
C语言笔记第03章:数组(四)
C语言笔记第03章:数组
101 0
|
编译器 C语言 索引
C语言笔记第03章:数组(一)
C语言笔记第03章:数组
110 0
|
7月前
|
NoSQL Redis C语言
|
C语言
C语言初阶 牛客网刷题笔记(将持续更新..)
C语言初阶 牛客网刷题笔记(将持续更新..)
C语言初阶 牛客网刷题笔记(将持续更新..)