当前位置:网站首页>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语言自带的数据类型学的差不多了。接下来我们该学习用户自定义的数据类型了
边栏推荐
- 2022-07-30:以下go语言代码输出什么?A:[]byte{} []byte;B:[]byte{} []uint8;C:[]uint8{} []byte;D:[]uin8{} []uint8。
- 再见了繁琐的Excel,掌握数据分析处理技术就靠它了
- MySQL8.0.26安装配置教程(windows 64位)
- ES source code API call link source code analysis
- Unity Framework Design Series: How Unity Designs Network Frameworks
- mysql stored procedure
- Minio upload file ssl certificate is not trusted
- With MVC, why DDD?
- MySQL开窗函数
- 1. 获取数据-requests.get()
猜你喜欢
随机推荐
MySQL optimization: from ten seconds to three hundred milliseconds
工作流编排引擎-Temporal
MySQL database installation (detailed)
110 MySQL interview questions and answers (continuously updated)
Minio upload file ssl certificate is not trusted
一文了解大厂的DDD领域驱动设计
【MySQL8入门到精通】基础篇- Linux系统静默安装MySQL,跨版本升级
ERROR 2003 (HY000) Can't connect to MySQL server on 'localhost3306' (10061)
限流的原理
【一起学Rust】Rust的Hello Rust详细解析
Error EPERM operation not permitted, mkdir 'Dsoftwarenodejsnode_cache_cacach Two solutions
STM32——DMA
[mysql improves query efficiency] Mysql database query is slow to solve the problem
pycharm专业版使用
CentOS7 安装MySQL 图文详细教程
Temporal介绍
[Introduction to MySQL 8 to Mastery] Basics - silent installation of MySQL on Linux system, cross-version upgrade
[Cloud Native] DevOps (5): Integrating Harbor
MySQL忘记密码怎么办
再见了繁琐的Excel,掌握数据分析处理技术就靠它了