初步认识C Lesson 2

文章目录

  • 常量
    • 1. C语言中的常量分为以下以下几种:
    • 2. 举例:
  • 字符串+转义字符+注释
    • 1. `"这一句话都算是一个字符串abc"`
    • 2. 转义字符
    • 3. 注释
  • 选择语句
  • 循环语句
  • 函数
  • 数组
    • 1. 数组的使用
  • 操作符.简单介绍
    • 2. 左移、右移操作符
    • 3. 位操作符
    • 4. 赋值操作符
    • 5. 单目操作符
      • 2. 前置++,后置++ 的详细区分
    • 6. 关系操作符
    • 7. 逻辑操作符
    • 8. 条件操作符
    • 9. 逗号表达式
    • 10. 下标引用、函数调用和结构成员
  • GG.

基本认识一下,不做深入了解,知道有这么个概念。

常量

1. C语言中的常量分为以下以下几种:

  1. 字面常量
  2. const 修饰的常变量:本质还是个变量。
  3. 初步认识C Lesson 2_第1张图片
  4. #define 定义的标识符常量
  5. 枚举常量

2. 举例:

int main()
{
     
    3.14;字面常量
    1000;字面常量
    const float pai = 3.14f;   const 修饰的常量
    pai = 5.14; 错误: pai的值改不了
 #define MAX 100           #define的标识符常量 
  n=MAX;可以; MAX=10;改不了。  
    return 0;
}
枚举类型的常量
enum Options  枚举类型关键字:enum
{
     
 exit, 0 
 add,  1
 del   2
};

字符串+转义字符+注释

1. "这一句话都算是一个字符串abc"

  1. 由双引号引起来的一串字符称为字符串,或者叫字符串字面值。

  2. 字符串的结束标志是'\0',是字符串的结束标志,不算做字符串的内容。

  3. 初步认识C Lesson 2_第2张图片

  4. 没有'\0'的情况初步认识C Lesson 2_第3张图片

int main()
{
     
    char arr1[] = "bit"; 
    char arr2[] = {
     'b', 'i', 't'}; 单引号引起来的叫 单个字符。 
    char arr3[] = {
     'b', 'i', 't''\0'};
    printf("%s\n", arr1); 
    printf("%s\n", arr2);bit后面还有随机字符
    printf("%s\n", arr3);
    return 0;
}

2. 转义字符

  1. 假如我们要在屏幕上打印一个目录:c:\code\test.c
  2. 实际输出是这样的:初步认识C Lesson 2_第4张图片
  3. \t 就是一个转义字符,下面是计算机常用转义字符:它告诉编译器需要用特殊的方式进行处理。初步认识C Lesson 2_第5张图片
  4. 关于ASCII码表:键盘上所有的字母、标点符号等都是转换为ASCII值存储在内存中。
    初步认识C Lesson 2_第6张图片

3. 注释

  1. // 或者 /* */ // 后面写注释,交代这段代码是干嘛的
  2. 初步认识C Lesson 2_第7张图片

选择语句

  1. 初步认识C Lesson 2_第8张图片
int main()
{
     
    int coding = 0;
    printf("你会去敲代码吗?(选择1 or 0):>");
    scanf("%d", &coding);
    if(coding == 1)
   {
     
       prinf("坚持,你会有好offer\n");
   }
    else
   {
     
       printf("放弃,回家卖红薯\n");
   }
    return 0;
}

循环语句

include <stdio.h>
int main()
{
     
    printf("好好学习\n");
    int line = 0;
    while(line<=20000)
   {
     
        line++;
        printf("我要继续努力敲代码\n");
   }
    if(line>20000)
        printf("赢取白富美\n");
    return 0;
}

函数

int main()
{
     
    int num1 = 0;
   int num2 = 0;
    int sum = 0;
    printf("输入两个操作数:>");
    scanf("%d %d", &a, &b);
    sum = num1 + num2;
    printf("sum = %d\n", sum);
    return 0;
}

上述代码,写成函数如下。:简化代码,代码复用。

#include 
int Add(int x, int y)
{
     
   int z = x+y;
   return z;
}
int main()
{
     
    int num1 = 0;
   int num2 = 0;
    int sum = 0;
    printf("输入两个操作数:>");
    scanf("%d %d", &num1, &num2);
    sum = Add(num1, num2);
    printf("sum = %d\n", sum);
    return 0;
}

初步认识C Lesson 2_第9张图片

数组

怎么存储1-10的数字呢?数组 :一组相同类型数据的集合。集合里的每一项称为元素。

int  arr[10] = {
     1,2,3,4,5,6,7,8,9,10};//定义一个整形数组,最多放10个元素

1. 数组的使用

int main()
{
     
 int i = 0;
 int arr[10] = {
     1,2,3,4,5,6,7,8,9,10};
 for(i=0; i<10; i++)
 {
     
       printf("%d ", arr[i]);
 }
 printf("\n");
    return 0;
}

操作符.简单介绍

  1. 初步认识C Lesson 2_第10张图片
    1. % 取模,求余数。

2. 左移、右移操作符

  1. 初步认识C Lesson 2_第11张图片

  2. 左移运算符(<<):有乘2的效果

左移运算符(<<)
 按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。
语法格式:
		需要移位的数字 << 移位的次数 		例如: 3 << 2,则是将数字3左移2位
计算过程:
3 << 2
首先把3转换为二进制数字0000 0000 0000 0000 0000 0000 0000 0011,
然后把该数字高位(左侧)的两个零移出,其他的数字都朝左平移2位,			最后在低位(右侧)的两个空位补零。
则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 1100,则转换为十进制是12。
数学意义:
在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以21次方,左移n位就相当于乘以2的n次方。
  1. 右移操作符(>>):有除2的效果
  二进制形式把所有的数字向右移动对应位移位数,低位移出(舍弃),高位的空位补符号位,即正数补零,负数补1。
语法格式:
需要移位的数字 >> 移位的次数
  例如11 >> 2,则是将数字11右移2位
计算过程:
11的二进制形式为:0000 0000 0000 0000 0000 0000 0000 1011,
然后把低位的最后两个数字移出,因为该数字是正数,所以在高位补零。
则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 0010。转换为十进制是2。
数学意义:
右移一位相当于除2,右移n位相当于除以2的n次方。

3. 位操作符

& 按位与

按位与运算符"&"是双目运算符。只有对应的两个二进制位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。

| 按位或

参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1。参与运算的两个数均以补码出现。

^ 按位异或

参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。参与运算数仍以补码出现。

·~· 按位取反

求反运算符~为单目运算符,具有右结合性。 其功能是对参与运算的数的各二进位按位求反。
0000 —>> 1111

4. 赋值操作符

在这里插入图片描述

  1. a=a+1;等于 a+=1;其余类似。

5. 单目操作符

  1. 初步认识C Lesson 2_第12张图片

    1. ! 计算机的判断条件是非0为真,若!0,则为真。
    2. 初步认识C Lesson 2_第13张图片
    3. ~ 初步认识C Lesson 2_第14张图片

2. 前置++,后置++ 的详细区分

原文地址

  1. sizeof(int) 求1个整型的内存大小,单位是字节。
  2. &和*
 &* 
 & 取出某个数据的地址。: int a=10; p=&a;  
 * 通过内存地址找到该变量的位置,并且改变了它的值。
 *p=20
  1. (类型)
    (int)强制转换为int类型 (char)强制转换为char类型

6. 关系操作符

  1. 初步认识C Lesson 2_第15张图片

7. 逻辑操作符

&& 并且的意思,a>0 && b>0
||	或者的意思,a<0 || a>9

8. 条件操作符

表达式为:表达式1?表达式2:表达式3
先求解表达式1,
若其值为真(非0)则将表达式2的值作为整个表达式的取值,
否则(表达式1的值为0)将表达式3的值作为整个表达式的取值。
例如:
1、max=(a>b)?a:b a>b 为真吗?为真就为a,为假就为b.
就是将a和b二者中较大的一个赋给max。
2、min=(a<b)?a:b
就是将a和b二者中较小的一个赋给min。

9. 逗号表达式

(表达式1,表达式2,表达式3...... ,表达式n)
逗号表达式的要领:
(1) 逗号表达式的运算过程为:从左往右逐个计算表达式。
(2) 逗号表达式作为一个整体,它的值为最后一个表达式(也即表达式n)的值。
(3) 逗号运算符的优先级别在所有运算符中最低。

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

[] 数组下标	
()函数调用。
. 结构体.成员 
-> 指针地址指向它的成员  

GG.

你可能感兴趣的:(C,main,knowledge,points,补码,指针,c语言)