C语言基础(L8 -L14)

L8 :注释

简单直接,规范有用

L9 :接续符和转义符

1.接续符

\ :表示一行没有结束,下一行继续
适用范围:
宏代码块定义

#define SWAP(a,b) \
{                 \
    int temp = a; \
    a = b;        \
    b = temp;     \
}

2.转义符

这里写图片描述

L10 :单引号 双引号

#include <stdio.h>
int main()
{
    char* p1 =  1 ;
    char* p2 = '1';
    char* p3 = "1";
    printf("%s, %s, %s", p1, p2, p3);
    printf('\n');
    printf("\n");
    return 0;
}

编译警告,执行出错,printf(“%s, %s, %s”, p1, p2, p3);这句出了问题。

  • 单引号表示字符常量
  • 双引号表示字符串常量
  • ‘a’表示字符常量 ,占一个字节,’a’+1 =’b’
  • “a”表示字符串常量,占2个字节,“a”+1表示指针运算,结果指向”a”结束符 ‘\0’

L11 : 逻辑运算符

1. && || !

&& 执行时 如果前一个结果为假,则表达式后面的不执行
|| 执行时 如果前一个结果为真,则表达式后面的不执行

2. 三目运算符

   int a =3;
   int b =1;
   int c =1;
   c=(a>b?a,b); // C=3
  *(a>b?&a,&b) =4; //a =4;

L12:位运算符

防错准则:

  • 避免位运算符,逻辑运算符和数学运算符出现在一个表达式中
  • 当三者需要同时出现时,尽量使用()来表达计算次序。
    交换两个变量 a,b 的三种方法:
#include <stdio.h>
#define SWAP1(a,b) \
{                  \
    int temp = a;  \
    a = b;         \
    b = temp;      \
}
#define SWAP2(a,b) \
{                  \
    a = a + b;     \
    b = a - b;     \
    a = a - b;     \
}
#define SWAP3(a,b) \
{                  \
    a = a ^ b;     \
    b = a ^ b;     \
    a = a ^ b;     \
}
int main()
{
    int a = 1;
    int b = 2;
    SWAP1(a,b);
    SWAP2(a,b);
    SWAP3(a,b);
     return 0;
}

L13 :++ – 操作符

L14 :优先级和类型转换分析

易错优先级描述

c语言隐式类型转换
这里写图片描述

猜你喜欢

转载自blog.csdn.net/shouzhoudd/article/details/45936543
l
今日推荐