操作符详解2

2023-12-15 18:31:30

1." + "和"?- "都是单目操作符

2.字符数组不能直接用=来赋值 搜

3.

struct stu
{
	int age;
	int high;

}a;//这是创建了全局变量

4.给变量输入一个浮点数时,若不说明是 f,则默认是double

5.可以在创建结构体全局变量时,给他初始化

struct stu
{
	char name[20];
	int age;
	int high;

}a = {"zhangsan", 15, 33};

6.结构体里边可以包含结构体

7.注意:

嵌套结构体时要注意顺序

例:

下边的那两个结构体顺序不能颠倒

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>

struct score
{
	int Position;
	float sco;
};

struct stu
{
	char name[20];
	int age;
	float high;
	struct score scr;
};



int main()
{
	
	struct stu a = { .name = "zhangsan", .high = 30.0f, .age = 20, .scr = {3, 98.3f}};
	struct stu* p = &a;
	printf("%s %d %.2f %f %d\n", a.name, a.age, a.high, a.scr.sco, a.scr.Position);
	//运行结果:zhangsan 20 30.00 98.300003 3
	p->age = 22;
	strcpy(p->name, "lisi");
	p->high = 200.0f;
	p->scr.Position = 55;
	printf("%s %d %.2f %f %d", a.name, p->age, a.high, p->scr.sco, a.scr.Position);
	//运行结果:lisi 22 200.00 98.300003 55





	return 0;
}

8.优先级一定是在相邻操作符之间才会谈论的一个话题

9.结合性:大部分运算符都是从左向右结合的,少数是从右往左后执行的,如:赋值操作符

10.操作符表更新搜

11.赋值操作符的优先级很低,逗号运算符的优先级最低

12.C语言中整型算术运算总是至少以默认整型类型的精度来进行的.

为了获得这个精度,表达式中的字符和短整型操作数在使用之前就被转换为普通整型而这种转换称为整型提升

13.有符号整数提升是按照变量的符号位来提升的.

无符号整数提升,高位补0

14.整形提升:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>


int main()
{
	char a1 = 1000;
	char a2 = 10;
	char a3 = a1 + a2;
	printf("%d\n", a3);
	printf("%d\n", a1 + a2);
	



	return 0;
}

%d是打印有符号的整数

15.ASCILL码值:

'A'是65,'Z'是90

'a'是97,'z'是122

'0'是48,'9'是57

16.如果某个操作符的各个操作数属于不同类型,那么除非其中一个操作数的转换为另一个操作数的类型,否则操作就无法进行.

算数转换:

long double

double

float

unsigned long int

long int

unsigned int

int

从下往上转

17.注:

a*b + c*d + e*f

c + --c

都是问题表达式

更多的问题表达式搜

18.即使有了操作符的优先级和结合性,我们写出的表达式依然有可能不能通过操作符的属性确定唯一的计算路径,那这个表达式就是存在潜在风险的,建议不要写出这种表达式。

19.1kb == 1024byte

20.编址搜

通过控制总线找到某个地址,再通过数据总线来读取和操作数据

21.一个内存单元大小是一个字节

22.int a = 10;

实质上就是向内存申请了4个字节的空间来储存10

23.整形能够存储的最大数字是0111 1111 1111?1111 1111?1111 1111 1111

即0x7fff ffff

24.指针是地址,指针变量是变量

25.计算机不会事先找好内存来存储所有的地址,那些地址是咱约定俗成的,自己就知道的

26.32位机器有32根地址总线,每根地址线出来的电信号转换成数字信号后是1或者0,那我们把32根地址线产生的2进制序列当做一个地址,那么一个地址就是32个bit位,需要4个字节才能存储.如果指针变量是用来存放地址的,那么指针变的大小就得是4个字节的空间才可以.
同理,在64位机器上,有64根地址线,一个地址就是64个二进制位组成的二进制序列,存储起来就需要8个字节的空间,那么指针变量的大小就是8个字节。

文章来源:https://blog.csdn.net/haipengzhou/article/details/134992506
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。