第二章偶发现道的一角——数据类型和变量

李想认识了各种古语c语言的各种的基本法则,并运用c语言,写出了他的第一个程序,但紧随而来的就是下一重考验数据的类型和变量

1.语句

c语言是由一条一条语句而成,语句像功法的碎片一样,把各种法则联合起来,就形成了一种特定的强大的功法的显现,语句可以分为五种

1.空语句,以无为为主,推崇无为即有为

2.表达式语句,他是变量的各种发展

3.函数调用语句,函数就像一种功法,功法越强,你使用你就越强,但它的缺点也有很多

4.复合语句,即是各种语句的组合

5.控制语句,它是你功法的核心,控制功法的走向

1.1空语句

空语句是最简单,它什么都不做,有时比做了还有效

#include<stdio.h>

int main()
{
	;//空语句,什么也不做
	return 0;
}

当功法伤害自身,你应该很么都不做才好

1.2表达式语句

表达式语句就是在表达式后面加分号,是一个变量的动态

#include<stdio.h>

int main()
{
	int a = 10;
	int b = 5;
	a + b;	//表达式
	a* b;
	a > 5;//表达式
	a = b + 5;	//表达式
	return 0;
}

1.3函数调用语句

知道函数的名字和函数的需要什么参数,就可以使用函数.

犹如学会了功法,当想运用功法只有想到名字和使用功法的条件就能使用

#include<stdio.h>

int Add(int x, int y)
{
	return x + y;
}

int main()
{
	printf("hello, Forever");//函数调用语句

	int c = Add(5, 3);//函数调用语句
	return 0;
}

1.4复合语句

即是各种语句的复合

#include<stdio.h>
int Add(int x, int y)
{
	return x + y;
}
int main()
{
	int c = Add(5, 3) + 5; ;;; //复合语句
	return 0;
}

1.5控制语句

c语言支持三种结构:顺序结构,选择结构,循环结构

条件判断语句:if语句,switch语句

循环语句:while语句 for语句 do while语句

转向语句:break语句,goto语句,continue语句,return语句

2注释

注释就是说明这条语句,这个函数的功能是什么等等,注释帮助我们更好理解程序,但对程序没有影响

如学习功法,有高人指点,对功法没有影响,但对你了解功法有很多的帮助

注释有两种方式

1./**/ 的注释方式,这种注释的特点是,在其中间写的任何东西都是注释,/* 直达遇到第一个*/才会结束

/* 这是一个注释*/

/*
这也是一个注释
*/

这种注释可以放在语句当中

int main()
{
	int c = Add(5/* 这函数的参数 */, 3) + 5; ;;; //复合语句
	return 0;
}

/*直到遇到一个注释才结束

#include<stdio.h>
int Add(int x, int y)
{
	/*
	return x + y;/*
	/* /*--这里都被当成注释的部分
}
int main() */
{
	int c = Add(5, 3) + 5;
	return 0;
}

所以这种注释不推荐嵌套

2. // 双斜杠的注释方式,这种是注释从双斜杠开始,注释一行结束

//这是注释
// int main 我可以注释一行
int main()
{
    
}//main函数没有被注释

注意点不能把注释写到字符串中去,会被当成字符串

3.注释会被替换

程序编译之后,会把注释部分当作一个空格,

int p/* 会被当成空格 */a =0
//就不是pa了

3.数据类型介绍

数据类型就是个中相似的数据集合在一起,有整型类型,字符串类型,浮点类型

数据类型的总类

3.1字符型

char;
signed char;
unsigned char;

3.2整型类型

short int;//短整型
signed short int;
unsigned short int;​

int;//整型
signed int;
unsigned int;

long int;//长整型
signed long int;
unsigned long int;

long long int;//更长的整型
signed long long int;
unsigned long long int;
​

3.3浮点型

​
float;    //单精度浮点型
double;   //双精度浮点型
long double;
​

​

3.4布尔型

在原本的c语言当中,用0代表假,1代表真,在C99后才引入的布尔型,使用布尔必须引用头文件<stdbool.h>

布尔有两个值true和false

#include<stdbool.h>

int main()
{	
	bool a = true;
	if (a)
		printf("a is true");
	a = false;
	printf("a is false");
}

1.5数据类型的长度

数据类型的长度用字节为单位表示,数据类型长度的不同,数据存放在内存中占用的空间就不同

3.5.1sizeof操作符

sizeof是关键字也是操作符,专门用来计算数据类型的大小,单位是字节

sizeof操作符的操作数,可以是数据类型,也可以是表达式

printf("%zd\n",sizeof(int))    //数据类型
printf("%zd\n",sizeof(3 + 5))    //表达式

·sizeof的操作数不是类型,而是表达式,括号可以省略

·sizeof的表达式是不参与运算的,根据表达式的类型来确定的大小

·sizeof计算的值的类型是size_t ,因为以前sizeof的类型没有规定,它的值类型可以是unsigned int,unsigned long ,unsigned long long 三种,对程序的可移值性有影响,所以专门用size_t类型来接收

#include<stdio.h>

int main()
{
	int a = 10;
	printf("%zd\n", sizeof(a));	//表达式可以省略括号
	printf("%zd\n", sizeof a);	//表达式可以省略括号
	printf("%zd\n", sizeof 3 + 5 );	//表达式可以省略括号

	printf("%zd\n", sizeof(int));	//是数据类型不能省略

	return 0;
}

3.5.2数据类型长度

上述结果是在vs2022 64位下的运算值

3.5.3 sizeof的表达是不参与运算

在sizeof()中的表达式不进行运算,sizeof的类型是表达的存储类型决定,i+2是整型运算但最终存到了short类型中,3+3.5555最终存在了浮点型中,值是类型为浮点型

表达式是在在程序运行期间才执行,sizeof在编译期间就已经被删除了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值