首页 > 其他分享 >操作符详解2

操作符详解2

时间:2023-07-29 11:35:10浏览次数:32  
标签:return int char 详解 操作符 printf sizeof main

#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>

int main()

{

	int a = 10;

	char b = 'w';

	int arr[10] = { 2 };

	short s = 0;

	printf("%d\n", sizeof(s = a + 5));//结果是2

	printf("%d\n", s);//结果是0

	printf("%d\n", sizeof(a));//4

	printf("%d\n", sizeof(int));//4

	printf("%d\n", sizeof(b));//1

	printf("%d\n", sizeof(char));//1

	printf("%d\n", sizeof(arr));//40

	printf("%d\n", sizeof(int [10]));//40

	return 0;

}

int main()

{

	int a = 7;//将7变成15

	//7二进制是000000000000000000000111

	//15二进制是000000000000000000001111

	//1二进制是000000000000000000000001

	a = a | (1 << 3);

	printf("%d\n", a);

	//将a值变回7

	//1<<3的二进制为00000000000000000001000

	//取反~(1<<3)111111111111111111110111

	//按位与

	a = a & (~(1 << 3));

	printf("%d\n", a);

	return 0;

}

void test1(int arr[])

{

	printf("%d\n", sizeof(arr));//4

}

void test2(char ch[])

{

	printf("%d\n", sizeof(ch));//4

}

int main()

{

	char ch[10] = { 0 };

	int arr[10] = { 0 };

	printf("%d\n", sizeof(ch));//10

	printf("%d\n", sizeof(arr));//40

	test1(arr);

	test2(ch);

	return 0;

}
int main()

{

	int i = 0; int a = 0; int b = 2; int c = 3; int d = 4;

	i = a++ && ++b && d++;//第一个为0假之后后面的运算都不会进行。当条件为||时同理,只要前面为真后面都不会计算

	printf(",a=%d\n,b=%d\n,c=%d\n,d=%d\n", a, b, c, d);//1,2,3,4

	return 0;

}

//三目操作符:如果?那么是:否则是;

int main()

{

	int max = 0;

	int a = 3;

	int b = 8;

	max = a > b ? b : a;

	printf("max=%d\n", max);

	return 0;

}

//创造一个结构体类型

//学生

struct stu

{

	char name[20];

	int age;

	char xh[20];

};

int main()

{

	int a = 20;

	//使用struct stu创建了一个类型xs1并且初始化

	struct stu xs1 = { "牛马",21,"2023072700" };

	printf("%s\n", xs1.name);

	printf("%d\n", xs1.age);

	printf("%s\n", xs1.xh);

	//结构体变量.成员名

	struct stu* ps = &xs1;

	printf("%s\n", (*ps).name);//和下面->意义一样

	printf("%s\n", ps->name);

	printf("%d\n", ps->age);

	printf("%s\n", ps->xh);

	//结构体指针->

	return 0;

}


//隐式类型转换:整形提升、算术转换

int main()

{

	char a = 3;

	char b = 127;

	char c = a + b;


	return 0;

}

//操作符的属性

//复杂表达式求值的三个影响因素:1.操作符的优先级。2,操作符的结合性。3,是否控制求助顺序

//b=c+ --c有歧义,不知道加法前的c是--前准备的还是--后。

//非法表达式

//int main()

//{

// int i = 10;

// i = i-- - --i * (i = -3) * i++ + ++i;

// printf("%d\n", i);

// return 0;

//}//无法确定运算顺序


//设计表达式的时候应该让其有唯一的运算路径

标签:return,int,char,详解,操作符,printf,sizeof,main
From: https://blog.51cto.com/u_16189143/6891206

相关文章

  • openGauss学习笔记-24 openGauss 简单数据管理-模式匹配操作符
    openGauss学习笔记-24openGauss简单数据管理-模式匹配操作符数据库提供了三种独立的实现模式匹配的方法:SQLLIKE操作符、SIMILARTO操作符和POSIX-风格的正则表达式。除了这些基本的操作符外,还有一些函数可用于提取或替换匹配子串并在匹配位置分离一个串。24.1LIKE描述:判断字......
  • javascript数据类型详解
    文章和代码已经归档至【Github仓库:https://github.com/timerring/front-end-tutorial】或者公众号【AIShareLab】回复javascript也可获取。数据类型JavaScript是一种弱类型或者说动态语言。不用提前声明变量的类型,在程序运行过程中,类型会被自动确定。varage=10;//数字型v......
  • TCP协议的三次握手、四次释放详解
    三次握手:  1.三次握手①第一次握手A的TCP客户进程向B发出建立连接请求报文段,其中SYN(同步位)=1,ACK(确认位)=0,seq(序号)=x。TCP规定,当报文段的SYN=1且ACK=0时,表明这是一个请求建立连接的;SYN报文段(SYN=1的报文段)不能携带数据,但是要消耗掉一个序号。在A发送完毕之后,A的TCP客户端进......
  • threading.Thread类详解
    1'''2threading.Thread类是Pythonthreading模块中用于创建和管理线程的主要类。它可以通过子类化并重写run()方法来定义自己的线程逻辑。一般会使用线程池31.构造器:4threading.Thread类的构造器如下:5classthreading.Thread(group=None,target=None,na......
  • VMPWN的入门级别题目详解(二)
    实验四VMPWN4题目简介这道题应该算是虚拟机保护的一个变种,是一个解释器类型的程序,何为解释器?解释器是一种计算机程序,用于解释和执行源代码。解释器可以理解源代码中的语法和语义,并将其转换为计算机可以执行的机器语言。与编译器不同,解释器不会将源代码转换为机器语言,而是直接执......
  • YUV格式详解
    YUV是指亮度参量和色度参量分开表示的像素格式,而这样分开的好处就是不但可以避免相互干扰,还可以降低色度的采样率而不会对图像质量影响太大。YUV是一个比较笼统地说法,针对它的具体排列方式,可以分为很多种具体的格式。转载一篇对yuv格式解释的比较清楚地文章,也可以直接参考微软的那......
  • openGauss学习笔记-23 openGauss 简单数据管理-时间/日期函数和操作符
    openGauss学习笔记-23openGauss简单数据管理-时间/日期函数和操作符23.1时间日期操作符用户在使用时间和日期操作符时,对应的操作数请使用明确的类型前缀修饰,以确保数据库在解析操作数的时候能够与用户预期一致,不会产生用户非预期的结果。比如下面示例没有明确数据类型就会出......
  • spool命令使用详解 oracle导出txt文件
    spool命令使用详解原文链接:https://www.xjx100.cn/news/454608.html?action=onClickSPOOL命令使用详解SPOOL是SQLPLUS的命令,必须在SQLPLUS中使用,主要完成以标准输出方式输出SQLPLUS的命令及执行结果,一般常用户格式化导出ORACLE表数据。 对于SPOOL数据的SQL,最好要自己定......
  • java多线程学习-java.util.concurrent详解
    java多线程学习-java.util.concurrent详解(一)Latch/Barrier   Java1.5提供了一个非常高效实用的多线程包:java.util.concurrent,提供了大量高级工具,可以帮助开发者编写高效、易维护、结构清晰的Java多线程程序。从这篇blog起,我将跟大家一起共同学习这些新的Java多线......
  • 图注意力网络论文详解和PyTorch实现
    图神经网络(gnn)是一类功能强大的神经网络,它对图结构数据进行操作。它们通过从节点的局部邻域聚合信息来学习节点表示(嵌入)。这个概念在图表示学习文献中被称为“消息传递”。消息(嵌入)通过多个GNN层在图中的节点之间传递。每个节点聚合来自其邻居的消息以更新其表示。这个过......