C语言学习笔记

这篇博客介绍了C语言的基础知识,包括程序结构、数据类型如字符型、整型和浮点型,以及运算符的优先级和结合性。讲解了自增自减运算符的区别,还涵盖了格式化输入输出函数scanf和printf的使用。此外,讨论了条件判断if语句和switch选择结构,强调了break在switch中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.1

HELLO WORLD

#include <stdio.h>
int main()
{
    printf("HELLO WORLD");
int a;
a=123;
printf("%d",a);
    return 0;
}

每个C程序必须有且仅有个main程序

  1. 一个程序有且仅有一条main函数语句。
  2. main函数的位置可以随意
  3. 但是执行的时候必须由main函数开始 并由main函数调用结束
  4. 其他函数不可以调用主函数

printf: 打印内容

int:它是 Integer 的简写,意思是整数

=:在C语言中,这个过程叫做赋值 Assign

int a:创造了一个变量 a,我们把这个过程叫做变量定义

a=123:把 123 交给了变量 a,我们把这个过程叫做给变量赋值;又因为是第一次赋值,也称变量                的初始化,或者赋初值。

 

注意:

  1. 开头:必须是英文字母或下划线
  2. 大小写敏感
  3. 长度:一般同规定标识符的长度<=8
  4. 标识符的选择要有意义
    标识符分为:系统定义标识符、用户定义标识符

1.2 

数据类型(Data Type)

字符型短整型整型长整型单精度浮点型双精度浮点型无类型
charshortint

long

floatdouble
void

 

 

 

数据的长度(Length) 

字符型短整型整型长整型单精度浮点型双精度浮点型
charshortintlongfloatdouble
124448

 

 

 

 

1.3

自增(++)和自减(--)

  • ++ 在前面叫做前自增(例如 ++a)。前自增先进行自增运算,再进行其他操作。
  • ++ 在后面叫做后自增(例如 a++)。后自增先进行其他操作,再进行自增运算。

    自减(--)也一样,有前自减和后自减之分。 

1.4

运算符优先级和结合性一览表

优先级

运算符

名称或含义

使用形式

结合方向

说明

1

[]

数组下标

数组名[常量表达式]

左到右

()

圆括号

(表达式)
函数名(形参表)

.

成员选择(对象)

对象.成员名

->

成员选择(指针)

对象指针->成员名

2

-

负号运算符

-表达式

右到左

单目运算符

(类型)

强制类型转换

(数据类型)表达式

++

自增运算符

++变量名
变量名++

单目运算符

--

自减运算符

--变量名
变量名--

单目运算符

*

取值运算符

*指针变量

单目运算符

&

取地址运算符

&变量名

单目运算符

!

逻辑非运算符

!表达式

单目运算符

~

按位取反运算符

~表达式

单目运算符

sizeof

长度运算符

sizeof(表达式)

3

/

表达式 / 表达式

左到右

双目运算符

*

表达式*表达式

双目运算符

%

余数(取模)

整型表达式%整型表达式

双目运算符

4

+

表达式+表达式

左到右

双目运算符

-

表达式-表达式

双目运算符

5

<<

左移

变量<<表达式

左到右

双目运算符

>>

右移

变量>>表达式

双目运算符

6

>

大于

表达式>表达式

左到右

双目运算符

>=

大于等于

表达式>=表达式

双目运算符

<

小于

表达式<表达式

双目运算符

<=

小于等于

表达式<=表达式

双目运算符

7

==

等于

表达式==表达式

左到右

双目运算符

!=

不等于

表达式!= 表达式

双目运算符

8

&

按位与

表达式&表达式

左到右

双目运算符

9

^

按位异或

表达式^表达式

左到右

双目运算符

10

|

按位或

表达式|表达式

左到右

双目运算符

11

&&

逻辑与

表达式&&表达式

左到右

双目运算符

12

||

逻辑或

表达式||表达式

左到右

双目运算符

13

?:

条件运算符

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

右到左

三目运算符

14

=

赋值运算符

变量=表达式

右到左

/=

除后赋值

变量/=表达式

*=

乘后赋值

变量*=表达式

%=

取模后赋值

变量%=表达式

+=

加后赋值

变量+=表达式

-=

减后赋值

变量-=表达式

<<=

左移后赋值

变量<<=表达式

>>=

右移后赋值

变量>>=表达式

&=

按位与后赋值

变量&=表达式

^=

按位异或后赋值

变量^=表达式

|=

按位或后赋值

变量|=表达式

15

,

逗号运算符

表达式,表达式,…

左到右

 格式控制符:

格式控制符说明
%c输出一个单一的字符
%hd、%d、%ld以十进制、有符号的形式输出 short、int、long 类型的整数
%hu、%u、%lu以十进制、无符号的形式输出 short、int、long 类型的整数
%ho、%o、%lo以八进制、不带前缀、无符号的形式输出 short、int、long 类型的整数
%#ho、%#o、%#lo以八进制、带前缀、无符号的形式输出 short、int、long 类型的整数
%hx、%x、%lx
%hX、%X、%lX
以十六进制、不带前缀、无符号的形式输出 short、int、long 类型的整数。如果 x 小写,那么输出的十六进制数字也小写;如果 X 大写,那么输出的十六进制数字也大写。
%#hx、%#x、%#lx
%#hX、%#X、%#lX
以十六进制、带前缀、无符号的形式输出 short、int、long 类型的整数。如果 x 小写,那么输出的十六进制数字和前缀都小写;如果 X 大写,那么输出的十六进制数字和前缀都大写。
%f、%lf以十进制的形式输出 float、double 类型的小数
%e、%le
%E、%lE
以指数的形式输出 float、double 类型的小数。如果 e 小写,那么输出结果中的 e 也小写;如果 E 大写,那么输出结果中的 E 也大写。
%g、%lg
%G、%lG
以十进制和指数中较短的形式输出 float、double 类型的小数,并且小数部分的最后不会添加多余的 0。如果 g 小写,那么当以指数形式输出时 e 也小写;如果 G 大写,那么当以指数形式输出时 E 也大写。
%s输出一个字符串

 1.5

scanf()函数

scanf 是 scan format 的缩写,意思是格式化扫描,也就是从键盘获得用户输入,和 printf 的功能正好相反。

if 语句

if(判断条件)

else if(判断条件)

else(判断条件)

1.6

关系运算符

关系运算符含  义数学中的表示
<小于<
<=小于或等于
>大于>
>=大于或等于
==等于=
!=不等于

优先级:关系运算符的优先级低于算术运算符,高于赋值运算符。在六个关系运算符中,<、<=、                >、>=的优先级相同,高于==和!=,==和!=的优先级相同。

逻辑运算符:

例如:

p为真命题,q为假命题,那么“p且q”为假,“p或q”为真,“非q”为真。

在C语言中,也有类似的逻辑运算

运算符说明结合性举例
&&与运算,双目,对应数学中的“且”左结合1&&0、(9>3)&&(b>a)
||或运算,双目,对应数学中的“或”左结合1||0、(9>3)||(b>a)
!非运算,单目,对应数学中的“非”右结合!a、!(2<5)

1.7

switch 

另外一种选择结构的语句,用来代替简单的、拥有多个分枝的 else if,基本格式如下:

switch(表达式){
    case 整型数值1: 语句 1;
    case 整型数值2: 语句 2;
    ......
    case 整型数值n: 语句 n;
    default: 语句 n+1;
}

当和某个整型数值匹配成功后,会执行该分支以及后面所有分支的语句,当希望只执行第四个分支,而跳过后面的其他分支。为了达到这个目标,必须要在每个分支最后添加break;语句。

break: 是C语言中的一个关键字,专门用于跳出 switch 语句。所谓“跳出”,是指一旦遇到 break,就不再执行 switch 中的任何语句,包括当前分支中的语句和其他分支中的语句;也就是说,整个 switch 执行结束了,接着会执行整个 switch 后面的代码。

default: 不是必须的。当没有 default 时,如果所有 case 都匹配失败,那么就什么都不执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值