C语言基础知识(一)

本文介绍了C语言中的基本运算符类型,如算术、逻辑、位和关系运算,以及赋值、条件运算符的使用。讲解了变量的概念、数据类型、常量(包括字符、字符串和整浮点型)、输入输出函数(getchar、putchar和printf、scanf)。同时讨论了垃圾字符回收机制,包括空格回收和抑制符的使用。
摘要由CSDN通过智能技术生成

标识符

命名规则:

  1. 由字母、数字、下划线组成
  2. 开头不能是数字
  3. 不能和关键字重复
  4. 最好见名知意

练习:x    y    sum   a100   _A7b_3x   3’a  x*y  @  b.8   while

运算符

算术运算符、逻辑运算符、位运算符、关系运算符、赋值运算符、条件运算符

算术运算符

+
-
*
/
%取余
++自增
--自减

/   整数相除,结果会向下取整

int a=5/2;

printf("%d\n",a); //2

float a=5/2;

printf("%f\n",a); //2.000000

float a=5/2.0;

printf("%f\n",a); //2.500000

float a=(float)5/2; //强制转换,只在当前这个位置进行转换

printf("%f\n",a); //2.500000

注:%f默认显示小数点后六位

逻辑运算符

&&逻辑与全真则真,一假则假
||逻辑或一真则真,全假则假
逻辑非取反   非真即假,非假则真

0假   1真

printf("%d\n",15>9&&9>11); 0

printf("%d\n",15>9||9>11); 1

printf("%d\n",15>9&&!(9>11)); 1

截断法则

逻辑与运算:当前边的表达式结果为假,后边表达式不再执行,直接返回假。

逻辑或运算:当前边的表达式结果为真,后边表达式不再执行,直接返回真。

#include <stdio.h>

int main()

{

        int a=5,b=6,c=7,d=8,m=2,n=2;

        (m=a<b)||(n=c>d);

        printf("%d  %d",m,n);

}

//m=1,n=2

位运算符

&位与全1则1,有0则0
|位或有1则1,全0则0
^异或相同为0,不同为1
~取反0-->1           1-->0

关系系运算符

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

=赋值      ==等于

赋值运算符

=a=b       ----->a=b
+=a+=b    ----->a=a+b
-=a-=b    ------>a=a-b
*=a*=b     ----->a=a*b
/=a/=b     ----->a=a/b
%=a%=b   ----->a=a%b

条件运算符(三目运算符)

表达式1?表达式2:表达式3;

运算法则:先判断表达式1是否成立,如果成立则执行表达式2,不成立则执行表达式3;

a=6,b=3;

a>b?a:b   ==  6

运算符优先级

单算移关与,异或逻条赋

单目运算符 !  ++  --  ~

算术运算符 *  /  % +  -

移位运算符  <<    >>

关系运算符  <   <=  >  >=   ==   !=

位与运算符  &

异或运算符  ^   |

逻辑运算符  &&   ||

条件运算符  ? :

赋值运算符  =  +=  -=  *=  /=  %=

 int x = 2 , y = 3 , z = 4;

则表达式 x + ( y > !z ) 的值为

3

变量 

概念:程序运行过程中发生变化的量

格式:存储类型 数据类型 变量名;

               auto          int           a;

存储类型:决定变量存储位置

数据类型:决定开辟的空间大小

变量名:遵循标识符的命名规则

(auto不用写出)

名称

字节大小

取值范围(了解)

int 

整型

4

char

字符型

1

-2^7~2^7-1

short

短整型

2

long

长整型

4

float

单精度浮点型

4

有效位数6-7位

double

双精度浮点型

8

有效位数15-16位

局部变量和全局变量

局部变量

全局变量

定义位置

函数体内部

函数体外部

初值

未初始化时值为随机值

未初始化时值为0

存储位置

栈区

全局区

生命周期

同函数体共存亡

同程序共存亡

作用域

当前函数体内部

整个程序

常量

概念:  常量在程序运行过程中不会发生变化

字符常量

用单引号包裹

char  a='w';

'w'--->字符

a---->变量

'n'字符n   '\n'换行    \转义    \\:\

char w='A';

char w1='\071';  八进制(八进制的71在ASCII表中代表的字符)

char w2='\x42';  十六进制(十六进制的x42在ASCII表中代表的字符)

printf("%c %c %c\n",w,w1,w2);

A   9   B

字符串常量

用双引号包裹,以'\0'作为结束标志

char a[]="hello";

里面有六个字符,还有一个'\0'

整型常量

八进制   十进制   十六进制

浮点型常量

float 4字节       double 8字节

标识常量

格式:#define  宏名  常量或表达式或代码段

特点:只是单纯的替换,不进行运算

宏定义:起标识的作用,宏名遵循标识符命名规则,一般用大写表示

#include<stdio.h>

#define N 5

#define M N+2

#define NUM 2+M*2+1 

int main(int argc, char const *argv[])

{

    printf("%d\n",NUM); 

    return 0;

}

//NUM = 2 + 5 + 2 * 2 + 1 = 12

输入输出 

按字符输入输出

输入

int getchar(void);

功能:向终端输入一个字符

参数:无

返回值:输入字符的ASCII值

int res=getchar();

printf("%d\n",res);

输出

int putchar(int c);

功能:向终端输出

参数:输出字符的ASCII值

返回值:输出字符的ASCII值

int res=getchar();

    putchar(res);

按格式输入输出

输出

int printf(const char *format, ...);

功能:按格式向终端输出

参数:多参

返回值:输出数据个数

格式:

%d int

%c char

%f float

%lf double

%s 字符串

%p 地址

%o 八进制

%#x 十六进制

浮点型,默认打印小数点后六位

float a=2.3;

printf("hello %.2f\n",a); //保留2位小数

输入

int scanf(const char *format, ...);

功能:按格式向终端输入

参数:多个

返回值:正确输入数据的个数

int a;

scanf("%d",&a);

printf("hello %d\n",a);

垃圾字符回收机制

1.通过空格回收

可以回收一个或多个空格、tab

char a,b;

scanf("%c %c",&a,&b);

printf("hello %c %c\n",a,b);

2.*抑制符,可以回收任意一个字符  (了解)

3.getchar

while(1)

    {

        char a;

        scanf("%c",&a);

        printf("%c\n",a);

        getchar();

    }

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值