当前位置:网站首页>C语言教程(二)-printf及c自带的数据类型
C语言教程(二)-printf及c自带的数据类型
2022-07-31 05:09:00 【怎么这么多名字都被占了】
目录
printf
printf将内容输出在stdout(标准输出,最终目标为显示器)里,可以这么用:
printf("hello");
printf("hello %s", "xxx");
printf("the var va is %d\n", va); //\n是换行符 //是注释更多的帮助信息可以输入
man 3 printf如果想要使用printf,需要在代码最上边写上
#include<stdio.h>#include是预处理命令,在预处理时,将<>里文件的内容复制粘贴到这个位置
<>里的文件在哪找?
在linux里,<>里的文件在
/usr/local/include
/usr/lib/gcc/i386-redhat-linux/4.1.2/include
/usr/include
...里面找。
而#include ""在预处理时,将""里文件的内容复制粘贴到这个位置,先在当前目录里找,如果找不到,再去<>找的地方找。
数据类型
数据类型就是对地址空间的访问规则
计算机存储数据的方法
计算机只能存储二进制数据,即0和1。
对于有符号数,最高位为符号位,0为正,1为负。在计算机中,存储正数是直接转为二进制。存储负数,就需要先将该数的绝对值转为二进制,再按位取反,最后加1。
对于无符号数,就不存在符号位,直接转为二进制即可。
因此,若一个无符号数6与一个有符号数-20相减,就是二进制数
0000 0110与二进制数
1110 1100相减,结果为
0001 1010若这个数按有符号数的规则来看,十进制就是26。
这玩意面试题经常考。
sizeof
sizeof运算符可以知道一个数据类型访问的字节数或变量所占的地址空间的字节数,如,想知道int类型访问的字节数,可写入如下代码
sizeof(int)int类型
int类型访问4个字节
short类型
short类型访问2个字节
char类型
char类型访问1个字节
float类型
float类型访问4个字节,是小数的类型
double类型
double类型访问8个字节,是小数的类型
变量定义
数据类型+变量名;就定义了一个变量
也可以使用
数据类型+变量名=值;初始化变量
如,定义int变量va,初始化为1。
int va=1;变量使用
直接输入变量名就可以使用了。如,输出va的值
printf("va=%d\n", va);指针
指针其实是个数据类型
我们来看这段代码
int *p;*说明p是指针类型的。指针类型的变量里存的是地址。int是指访问该指针类型的变量里的地址时,遵循int的访问规则。
那么,如何获得指定变量的地址呢?
&+变量可以获得指定变量的地址。
如,创建一个指针类型的变量,这个指针类型的变量里存储变量va的地址,访问该指针类型的变量里的地址时,遵循int的访问规则。代码就可以写成
int *p=&va;读取p所存的地址中的内容是,用*p;
printf("va=%d\n", *p);
c语言有个面试题,叫分辨电脑是大端还是小端。
大端模式,是指数据的高字节保存在地址空间的低地址中,而数据的低字节保存在地址空间的高地址中
小端模式,是指数据的高字节保存在地址空间的高地址中,而数据的低字节保存在地址空间的低地址中
如何分辨?代码为
#include<stdio.h>
int main(void){
short a=0x01;//0x..为16进制数,0x01写成short类型是00000000 00000001
char *c=&a;//这里面访问变量里的地址时,遵循char的访问规则,如果是大端,则*c=0
if((*c)==0){//if用法:if(表达式){代码}。若表达式不为0,则执行{}里的代码。==,若左右两边不等为0
printf("big\n");
}else{//else跟在if后,使用方法:else{代码}。若if的表达式为0,则执行{}里的代码
printf("small\n");
}
return 0;
}至此,我们已经将c语言自带的数据类型学的差不多了。接下来我们该学习用户自定义的数据类型了
边栏推荐
- TOGAF之架构标准规范(一)
- 面试官竟然问我怎么分库分表?幸亏我总结了一套八股文
- PCL calculates the point cloud coordinate maximum and its index
- [Cloud Native] DevOps (5): Integrating Harbor
- ERROR 2003 (HY000) Can't connect to MySQL server on 'localhost3306' (10061)
- Unity Framework Design Series: How Unity Designs Network Frameworks
- 【JS面试题】面试官:“[1,2,3].map(parseInt)“ 输出结果是什么?答上来就算你通过面试
- Multiple table query of sql statement
- Goodbye to the cumbersome Excel, mastering data analysis and processing technology depends on it
- 快速掌握并发编程 --- 基础篇
猜你喜欢
【一起学Rust】Rust学习前准备——注释和格式化输出

12个MySQL慢查询的原因分析

Centos7 install mysql5.7 steps (graphical version)

centos7安装mysql5.7步骤(图解版)

Unity resources management series: Unity framework how to resource management

12 reasons for MySQL slow query

面试官问我TCP三次握手和四次挥手,我真的是

Error EPERM operation not permitted, mkdir 'Dsoftwarenodejsnode_cache_cacach Two solutions
![[Introduction to MySQL 8 to Mastery] Basics - silent installation of MySQL on Linux system, cross-version upgrade](/img/af/7a2cdcc6535c04c508c9ddf9ee0cb2.png)
[Introduction to MySQL 8 to Mastery] Basics - silent installation of MySQL on Linux system, cross-version upgrade

The monitoring of Doris study notes
随机推荐
Workflow番外篇
DVWA靶场环境搭建
MySQL database installation (detailed)
CentOS7 - yum install mysql
MySQL8--Windows下使用压缩包安装的方法
mysql存储过程
MySQL事务(transaction) (有这篇就足够了..)
Shell重油常压塔模拟仿真与控制
matlab simulink欠驱动水面船舶航迹自抗扰控制研究
CentOS7 安装MySQL 图文详细教程
Mysql——字符串函数
面试官竟然问我怎么分库分表?幸亏我总结了一套八股文
面试官:生成订单30分钟未支付,则自动取消,该怎么实现?
Unity Framework Design Series: How Unity Designs Network Frameworks
面试官问我TCP三次握手和四次挥手,我真的是
Distributed Transactions - Introduction to Distributed Transactions, Distributed Transaction Framework Seata (AT Mode, Tcc Mode, Tcc Vs AT), Distributed Transactions - MQ
ABC D - Distinct Trio (Number of k-tuples
datagrip带参sql查询
Simple read operation of EasyExcel
TOGAF之架构标准规范(一)