C语言学习-Part 02

这篇博客详细介绍了C语言的基础知识,包括数据类型如整数、浮点数、字符和枚举,以及指针和构造类型。深入讲解了sizeof运算符和signed/unsigned限定符的取值范围。此外,还阐述了字符和字符串的处理,算术和关系运算符的使用,以及逻辑运算符的短路求值特性。内容覆盖了C语言学习的重要概念,适合初学者入门学习。
摘要由CSDN通过智能技术生成

如你对其他C语言知识感兴趣,请考虑阅读我的专栏:

C语言学习【专栏】

须知

本文仅作学习笔记使用,仅在CSDN网站发布,如果在其他网站发现,均为侵权行为,请举报。作者:小王在努力。
参考资料:小甲鱼-带你学c带你飞


数据类型

1.类型分类

  • 基本类型
    –整数类型 int
    –浮点数类型 float
    –字符类型 char
    –布尔类型 _Bool
    –枚举类型 emnu
  • 指针类型
  • 构造类型
    –数组类型
    –结构类型
    –联合类型
  • 空类型

2.基本类型

  • 整数类型
    –short int
    –int
    –long int
    –long long int
    –三者之间的关系为: short int <= int <= long int <= long long int
  • 浮点数类型 float
  • 字符类型 char
  • 布尔类型 _Bool
  • 枚举类型 emnu

3.sizeof运算符

  • sizeof(object); //sizeof(对象)
  • sizeof(type_name); //sizeof(类型)
  • sizeof object; // sizeof 对象
    在这里插入图片描述

4.signed和unsigned 限定符

  • 其中signed代表带符号,默认为signed
  • unsigned代表不带符号,其中在格式化输出函数中输出无符号数为:%u

取值范围

1.比特位

  • bit:CPU能读懂的最小单位
  • Byte:内存机构中的最小寻址单位。 1Byte = 8 bit

2.基本数据类型的取值范围

在这里插入图片描述

字符和字符串

1.signed和unsigned

  • C语言中char的默认类型是看用户的操作系统的,有的系统默认是signed有的系统默认为unsigned,注意区分int

2.字符串

  • 声明形式:char 变量名[数量];
  • 变量名[索引] = 字符;
  • eg:
//声明字符串
char name[5];
//为字符串赋值
name[0] = 'D';
name[1] = 'a';
name[2] = 'n';
name[3] = 'D';
name[4] = 'a';
//定义字符串
char name[5] = {'F', 'i', 's', 'h', 'C'};

3.注意事项

  • 字符串的赋值要考虑到‘\0’的位置,即,实际长度应该等于字符串长度-1,如按以下进行赋值操作则会出现问题:
	char name[5] = "DanDa";
	printf("我的网名是:%s", name);

在这里插入图片描述

  • 为了方便可以采用不填写字符串的长度来避免此类型错误:
	char name[] = "Dan_Dan";
	printf("我的网名是:%s", name);

在这里插入图片描述

算术运算符

1.算数运算符表

在这里插入图片描述

2.表达式

  • 表达式:使用运算符和括号讲操作数连接起来的式子,eg : a + ‘b’ + pow(a, b) * 3 / 4 +5

3.类型转换

  • 在不同类型的数据在进行运算的时候,先将不同的数据类型转换为相同的数据类型(转换为所占内存较大的数据类型)
  • 强制转换:(类型) 初始类型

关系运算符和逻辑运算符

1.关系运算符

  • 常见的关系运算符: > < >= <= == != (优先级小于算数运算符,大于赋值运算符)
  • c语言用 1 表示真,用0表示假

2.关系表达式

  • 用关系运算符将两边的变量、数据或表达式连接起来
  • 1 < 2 返回的逻辑值为 1
  • ‘a’ + ‘b’ <= ‘c’ 返回的逻辑值为0

3.逻辑运算符

  • 需要同时对两个及两个以上的关系表达式进行判断需要用到逻辑运算符
  • C语言提供了三种逻辑运算符: !> && > ||(优先级比较)

4.逻辑表达式

  • 用逻辑运算符将两边的变量、数据或表达式连接起来
  • 3 > 1 && 1 < 2 返回的逻辑值为 1
  • 3 + 1 || 2 == 0 返回的逻辑值为 1(3+1 = 4,4为非零,所以 真||未知,判断或后面的真假,2!=0所以后面为假,所以 真||假 = 真,所以返回的逻辑值为1)
  • a = 3, b = 5则下列:
  • !(a + b) 返回的逻辑值为 0
  • !0 + 1 < 1 || !(3 + 4) 返回的逻辑值为 0
  • ‘a’ - ‘b’ && ‘c’ 返回的逻辑值为 1
  • 得到的结论:
    1.算术运算符 > 关系运算符 > 逻辑运算符
    2.在计算此类表达式返回的逻辑值时候,先用逻辑运算符将式子分为几部分,然后分别求各个部分的真假

5.短路求值

  • c语言对逻辑与和逻辑或采取短路求值的方式
  • 短路求值说白了就是如果第一部分就能够确定表达式返回的逻辑值,就不用计算接下来的关系表达式了。
  • 例如:(1 || 596 * 2 - 1191 == 0),根据逻辑或的性质,在已知第一部分返回的逻辑值为1导致表达式返回的逻辑值已经确定为1了,所以就不用计算接下来的部分了
	int a = 3, b = 5;
	(a = 0) && (b = 4396);
	printf("a = %d,    b = %d\n", a, b);
	(a = 1) || (b = 4396);
	printf("a = %d,    b = %d\n", a, b);
  • 运行结果为:
    在这里插入图片描述
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值