C语言程序设计

日落有个小商店,贩卖着橘黄色的温柔。

7.关系操作符

>

>=

<

<=

!=(用于测试"不相等")

==(用于测试"相等",但是不是所有的对象都可以用该符号来比较相不相等)

eg.

int main ( )

{

if ("abc"=="abcdef")//这样写是在比较2个字符串的首字符地址

{

}

return 0;

}

//两个字符串比较相等应该使用strcmp函数来比较

(注意:在编程过程中要注意==和=不小心写错导致的错误)

8.逻辑操作符

&& 逻辑与

| | 逻辑或

区分逻辑与按位与 ,区分逻辑或按位或

(逻辑与和逻辑或只关注真假,不关注变量的二进制序列)

逻辑与(&&):同真为真,一假则假

逻辑或(| | ):同假为假,一真为真

练习:

1.下面代码打印的结果是什么?

cs 复制代码
#include <stdio.h>

int main()
{
	int i = 0, a = 0, b = 2, c = 3, d = 4;
	i = a++ && ++b && d++;
	printf("a=%d\n b=%d\n c=%d\n d=%d\n", a, b, c, d);
	return 0;
}

分析:

2.下面代码打印的结果是什么?

cs 复制代码
#include <stdio.h>
int main()
{
	int i = 0, a = 0, b = 2, c = 3, d = 4;
	i = a++ || ++b || d++;
	printf("a=%d\nb=%d\nc=%d\nd=%d\n", a, b, c, d);
	return 0;
}

分析:

总结:

&& 左边为假,右边就不计算了

| | 左边为真,右边就不计算了

9.条件操作符 (也称为三目操作符)

(exp1) ? (exp2) : (exp3)--> (表达式1) (表达式2) :( 表达式3)

计算方式:

表达式1为真,计算表达式2,不计算表达式3-->整个表达式结果为表达式2的结果

表达式1为假,不计算表达式2,计算表达式3-->整个表达式结果为表达式3的结果

练习:

1.

if (a > 5)

b = 3;

else

b =-3;

转换成条件表达式,是什么样的?

2.使用条件操作符实现找到两个数中的较大值

cs 复制代码
#include <stdio.h>
//使用条件操作符实现找到两个数中的较大值
int main()
{
	int a = 3;
	int b = 0;
	int max = (a > b ? a : b);
	printf("%d\n", max);
	return 0;
}

10.逗号表达式

exp1, exp2, exp3, ...expN

逗号表达式,就是用逗号隔开的多个表达式。

逗号表达式,从左往右依次执行。整个表达式的结果是最后一个表达式的结果。

11.下标引用、函数调用和结构成员

1)[ ] 下标引用操作符

操作数:一个数组名+一个索引值

下图数组表达一般使用arr[7]这种常规表达,在初始化数组的时候写成int [10]arr 是错误的。

2)()函数调用操作符

接受一个或多个操作数:第一个操作数是函数名,剩余的操作数就是传给函数的参数

3)访问一个结构体的成员

. 结构体.成员名

-> 结构体指针->成员名 ( ps->age 等价于 (*ps).age )

cs 复制代码
#include <stdio.h>
#include <string.h>//strcpy的头文件

struct Stu
{
	char name[20];
	int age;
	double score;
};

void set_stu(struct Stu* ps)
{
	//name是个地址,应该将字符串放到name所指的空间里去
	//用strcpy把字符串拷贝到name所指的空间里去
	//strcpy((*ps).name, "zhangsan");
	//(*ps).age = 20;
	//(*ps).score = 100.0;

	//简化
	strcpy(ps->name, "zhangsan");
	ps->age = 20;
	ps->score = 100.0;
}

void print_stu(struct Stu ss)
{
	printf("%s %d %lf\n", ss.name, ss.age, ss.score);
}

int main()
{
	struct Stu s = { 0 };
	set_stu(&s);
	print_stu(s);

	return 0;
}
相关推荐
组合缺一2 分钟前
Solon AI (Java) v3.9 正式发布:全能 Skill 爆发,Agent 协作更专业!仍然支持 java8!
java·人工智能·ai·llm·agent·solon·mcp
MSTcheng.7 分钟前
【C++】C++11新特性(二)
java·开发语言·c++·c++11
晓13139 分钟前
第七章 【C语言篇:文件】 文件全面解析
linux·c语言·开发语言
一 乐10 分钟前
校园二手交易|基于springboot + vue校园二手交易系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端
KIKIiiiiiiii11 分钟前
微信个人号API二次开发中的解决经验
java·人工智能·python·微信
梵刹古音12 分钟前
【C语言】 指针基础与定义
c语言·开发语言·算法
80530单词突击赢12 分钟前
SpringBoot整合SpringMVC全解析
java·spring boot·后端
vx1_Biye_Design22 分钟前
基于Spring Boot+Vue的学生管理系统设计与实现-计算机毕业设计源码46223
java·vue.js·spring boot·spring·eclipse·tomcat·maven
vx_Biye_Design23 分钟前
基于Spring Boot+vue的湖北旅游景点门票预约平台的设计--毕设附源码29593
java·vue.js·spring boot·spring cloud·servlet·eclipse·课程设计
hedley(●'◡'●)23 分钟前
基于cesium和vue的大疆司空模仿程序
前端·javascript·vue.js·python·typescript·无人机