Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >c 语言学习第三天

c 语言学习第三天

作者头像
冬夜先生
修改于 2021-09-06 02:46:02
修改于 2021-09-06 02:46:02
21700
代码可运行
举报
文章被收录于专栏:csicocsico
运行总次数:0
代码可运行

字符和字符串

字符

当我们定义了一个字符变量 c 为a时,打印的时候让它使整数形式显示。会出现怎么一个情况?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<stdio.h>

int main(){
  char c = 'a';
  printf("c show number is %d \n",c);
  return 0;
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
c show number is 97

当定义变量使用char类型时,把它赋值给数字,会出现什么情况?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<stdio.h>

int main(){
  char a = 97,b = 98,c = 99;
  printf("%c,%c,%c \n",a,b,c);
  return 0;
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
a,b,c

声明字符会参照ASIIC 码进行转换。当以字符形式显示,就会显示表中对于的字符显示。当以整数形式显示,就会参照表中定义的数字形式显示。

  • 当然 char 类型也有取值范围,当超过取值范围,就会出现异常显示。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<stdio.h>
int main(){
  char a =180 ,b = 190,c = 300;
  printf("a:%d \n",a);
  printf("b:%d \n",b);
  printf("c:%d \n",c);
  return 0;
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
test3.c: In function ‘main’:
test3.c:4:2: warning: overflow in implicit constant conversion [-Woverflow]
  char a =180 ,b = 190,c = 300;
  ^
a:-76
b:-66
c:44

在定义char类型的时候,根据编辑器默认加上signedunsigned,由于编辑器的不同。所以 char 的取值范围不同,signed char取值范围为-128~127,而unsigned char取值范围为0~255

字符串

在 c 语言中,字符串就是一串字符,所以没必要新定义一个字符串类型。只需要在内存中找一块连续的空间来存储字符串即可。

  • 声明字符串
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# char 标识符[长度|可不写];
char c[6];

# char 标识符[长度|可不写]= {*,*,*,*};

char c[6]= {'h','e','l','l','o','\0'};
  • 字符串赋值
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
c[0] = 'h';
c[1] = 'e';
c[2] = 'l';
c[3] = 'l';
c[4] = 'o';
c[5] = '\0';
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<stdio.h>
int main(){
  char c[]= {'h','e','l','l','o','\0'};
  printf("c is %s\n",c);
  printf("world");
  return 0;
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
hello
world

运算符

算数运算符

双目:+,-,*,/,%.

单目:+,-.

什么是目?目取决于操作数,符号需要连接两个操作数的叫双目运算符。连接一个操作数叫单目运算符。

  • /

整数/整数 = 整数(小数点会被舍弃)

浮点数/浮点数 = 浮点数

  • % 求余

当浮点数求余时会发生报错。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<stdio.h>

int main(){
  double a = 5.2 % 3.0;
  printf("a is %f\n",a);
  return 0;
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
test5.c: In function ‘main’:
test5.c:4:17: error: invalid operands to binary % (have ‘double’ and ‘double’)
  double a = 5.2 % 3.0;
                 ^

表达式

用于运算符和括号将操作数连接起来的式子。

运算符优先级

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int main(){
  int i ,j ,k;
  i = 1 + 2;
  j = 1 + 2 * 3;
  k = j + j + -1 + pow(2,3);
  printf("i is %d\n",i);
  printf("j is %d\n",j);
  printf("k is %d\n",k);
  return 0;
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
i is 3
j is 7
k is 21

类型转换

为了确保计算的精度,默认以操作数类型占用内存较大的为基础,其余不同类型会转换成占用内存较大的数据类型,然后进行运算,结果也为占用内存较大的数据类型。

  • 例如:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 + 1.5 = 1.0 + 1.5 = 2.5
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<stdio.h>
int main(){
  printf("整型输出:%d\n", 1 + 2.0);
  printf("浮点型输出:%f\n",1 + 2.0);
  return 0;
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
整型输出:-1131816200
浮点型输出:3.000000
强制类型转换

在操作数前+(类型)即可。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<stdio.h>
int main(){
  printf("整型输出:%d\n", 1 + (int)2.0);
  printf("浮点型输出:%f\n",1 + 2.0);
  return 0;
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
整型输出:3
浮点型输出:3.000000

浮点类型转换 int 类型,会直接把小数点后面的数直接省略。而不是四舍五入。

关系运算符

用关系运算符将两边的变量、数据或表达式连接起来,称之为关系表达式。(有返回值)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int a = 1,b = 0;
1 < 2 // int 1
a < b // int 0
a <= b // int 0
'a' + 'b' <= 'c' // int 0
(a=5) < (b = 10) // int 1

逻辑运算符

  • !:逻辑非,取反,单目运算符
  • &&:逻辑与,全为真才为真
  • ||:逻辑或,有一个为真就为真
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<stdio.h>

int main(){
  int a = 5,b=3;
  printf("%d \n",!a);
  printf("%d \n",a>b);
  printf("%d \n",!(a+b));
  printf("%d \n",!0 + 1 < 1 || !(3+4));
  return 0;
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
0
1
0
0

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【C语言】数据类型与变量
C语言原来并没有为布尔值单独设置一个类型,而是使用整数 0 表示假,非 0 表示真。
云边有个稻草人
2024/10/21
1290
【C语言】数据类型与变量
【C语言】数据类型和变量
C语言提供了丰富的数据类型来描述生活中的各种数据。使用整型类型来描述整数,使用字符类型来描述字符,使用浮点型类型来描述小数。所谓“类型”,就是相似的数据所拥有的共同特征,编译器只有知道了数据的类型,才知道怎么操作数据。
zxctscl
2024/09/24
1910
【C语言】数据类型和变量
c语言从入门到实战——C语言数据类型和变量
本文基于VS2022,将介绍一系列的C语言数据类型和变量,让读者对C语言有一个初步的了解,并对后续的学习做下铺垫。
鲜于言悠
2024/03/20
3490
c语言从入门到实战——C语言数据类型和变量
初识C语言·2
signed和unsigned都是C语言中的关键字,它们的作用是决定字符或者整型的正负号。
_lazy
2024/10/16
1530
初识C语言·2
C语言——B/数据类型和变量
自定义类型包括:数组、结构体(struct)、枚举(enum)、联合体(union)。
用户11015888
2024/03/11
2380
C语言——B/数据类型和变量
第2讲:C语言数据类型和变量
使用 整型类型来描述整数,使用 字符类型来描述字符,使用 浮点型类型来描述小数。
用户11290648
2024/09/25
2460
第2讲:C语言数据类型和变量
C语言学习系列-->第二弹【数据类型和变量】
南桥
2024/01/26
1900
C语言学习系列-->第二弹【数据类型和变量】
C语言的数据类型和变量-学习笔记
今天上课时,老师和我们说学习编程和代码是为了解决未来生活中的问题,写出的代码是为了能够描述现实世界。欧克,接下来将和大家一起学习C语言相关知识。希望对大家能够有所帮助!!!
LonlyMay
2024/10/21
980
C语言的数据类型和变量-学习笔记
【C生万物】C语言数据类型、变量和运算符
C语言提供了了丰富的数据类型来描述生活中的各种数据。 C语言提供的一下数据类型:
爱敲代码的小杨.
2024/05/07
1590
【C生万物】C语言数据类型、变量和运算符
轻松拿捏C语言——数据类型和变量
在C语言中含有许多丰富的数据类型,比如用整形类型来描述整数,用浮点类型来描述小数,用字符型来描述字符。
用户11162265
2024/06/14
1510
轻松拿捏C语言——数据类型和变量
初识C语言(下)
本章内容为初始C语言下半部分,将一些C语言的常见概念进行阐述并不会深层次的探究,后续会深入讲解C语言的,适合初学者能够初步认识到C语言及其常见的概念。高校教育较为注重素质教育和现在的公司需求还是有一定的差距,这篇文章可以为初学C语言的初学者们提供参考,如果你对C语言的整体知识不太了解,可以读一读笔者的文章,带你零基础学透C语言。
四念处茫茫
2025/01/25
1260
初识C语言(下)
C语言万字基础笔记总结(一)
当运算符左右两个操作数类型不同时,编译器会将它们共同转换位某种数据类型,通常情况下,会向精度较大的那个类型转化。
远方的星
2021/08/02
9250
C语言万字基础笔记总结(一)
初识C语言
自己整理的C语言基础学习笔记,参考了挺多资料的,适合梳理知识框架,进而攻克各个知识点。
小孙同学
2022/01/14
3960
初识C语言
C语言基础
“知己知彼,百战百胜”,大学计算机专业接触的第一门专业课就是C语言,那么什么是C语言呢?人和人之间可以用汉语、英语进行交流,那人和计算机之间应该如何交流呢?这个时候就需要计算机语言。C语言就是常见的计算机语言中的一种,还有Java、C++等计算机语言。
用户11352420
2024/11/07
1340
C语言基础
C语言新手小白详细教程(2)变量与运算符
#include <stdio.h> 是一个预处理命令,它告诉编译器在编译时要包含标准输入输出库。 函数是用来执行特定任务的一段代码,可以重复使用。main 函数是程序的入口点,其中包含了打印 “Hello, world!” 这一操作。
意疏
2024/11/25
1820
C语言新手小白详细教程(2)变量与运算符
未禾的C语言总结
**************************************************************************************************************************************************************************************************************** 操作符解释:     1,算术操作符:         ‘+’、‘-’、‘*’、‘/’、‘%’         %取模操作符只能用于整数,         /除法操作符,两个操作数均是整数时为整数除法,有一个是浮点数则执行浮点数除法。         如:int a = 6/5;//->a==1             double b = 6/5;//->b==1.000000             double c = 6.0/5//->c==1.200000,即实际运算与定义的储存类型无关     2,移位操作符         左移‘<<’、右移‘>>’         左移操作符:             如:   int a=2;                 int b = a << 1;//a向左移动一位,结果存入变量b中,结果b为4             正整数2在内存中存放的补码为:                                00000000000000000000000000000010             向左移动一位,左边的首位0去掉,右边的缺一位补0:00000000000000000000000000000100 ->4(十进制)         右移操作符:             右移时分为算数右移和逻辑右移。             算数右移:右边丢弃,左边补符号位。             逻辑右移:右边丢弃,左边补0。             如:int a = -10;                    int b = a >> 1;//a向右移动一位,结果存入变量b中             正整数10在内存中的补码为11111111111111111111111111110110//若为负数则原码与补码不同。             算术右移:             11111111111111111111111111111011 ->-5             逻辑右移:             01111111111111111111111111111011 ->2,147,483,643         对移位操作符移动负数位,这时C语言未定义的,不要使用。     3,位操作符         按位与‘&’、按位或‘|’、按位异或‘^’         位解释为二进制的一位。         &按位与,全为1时结果才为1,其他情况结果均为0             如:int a = 3;//        00000000000000000000000000000011                    int b = 5;//        00000000000000000000000000000101                    int c = a & b;//    00000000000000000000000000000001->1(十进制)             eg:找出一个整数的二进制的1的个数。                 #include <stdio.h>                 int main(){                 int a=1;                 int cnt=0;                 for(int i=0; i<31; i++){                     if((a&1) == 1){//整数的二进制数的1的个数                          cnt++;                     }                     a=a >> 1;                 }                 printf("%d\n",cnt);                 return 0;             }          |按位或,全为0时结果才为0,其他情况结果均为1             如:int a = 3;//    000
怠惰的未禾
2023/04/27
5430
【期末复习】考试月来临!☀️C语言复习,这一篇带你逃离挂科区!(上)⭐️
注意:变量必须先定义后使用,在变量取值时,实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据
小丞同学
2021/08/16
9030
【蓝桥杯系列】第一节 C的基本用法
置顶编程范收获更多热门编程快讯 大家好,最近很多小伙伴向我反应小编!我参加了蓝桥杯但是我连那是什么都不知道,我该怎么训练?是不是在网站刷题就可以啊? 在这里我要回答的是刷题是必须的,著名土神(tourist)刷题超过10000道 每道估计40分钟,大约要7000个小时。可是说是地标最强【俄罗斯真是恐怖 当然我们做题是要有章法的,今天我们先统一学一遍C的基本用法 课前准备 Dev-cpp C语言网 推荐课外学习教材:《算法竞赛入门经典(第2版)》 刘汝佳 编著 清华大学出版社 C语言 编程规范 缩进 代码
编程范 源代码公司
2018/04/18
1.2K0
【蓝桥杯系列】第一节 C的基本用法
【c语言】简单的算术操作符、输入输出函数
一个完整、有效程序的运行,是离不开各种计算的。c语言提供了诸多的算数操作符,以便我们能够合理使用各种计算实现程序。接下来将介绍几个比较常用的算数操作符。
ephemerals__
2024/10/24
2030
【c语言】简单的算术操作符、输入输出函数
关于我、重生到500年前凭借C语言改变世界科技vlog.2——C语言数据类型和变量
C语言的数据类型多种多样,类型不仅是我们了解数据的开始,也是数据初始化、函数自定义等的操作,编译器只有知道了数据的类型,才能进行相应的操作
DARLING Zero two
2024/11/19
830
关于我、重生到500年前凭借C语言改变世界科技vlog.2——C语言数据类型和变量
相关推荐
【C语言】数据类型与变量
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验