5-24续【C语言入门学习】

九、操作符

1、算数操作符:+、-、*、/、%(加减乘除取模运算)

“/”两端都是整数时,执行整数除法(结果也为整数)例:3/2 = 1

“/”两端都是小数时,执行小数除法(结果也为小数)例:3/2.0 = 1.5

2、移位操作符:<<、>>(左移操作符、右移操作符)

移位操作符,移动的是二进制位。

例 :a = 2,a << 1---------------> a = 4

3、位操作符:&(按位与)、|(按位或)、^(按位异或)

这三个符号操作的对象是数的二进制位进行与、或、异或操作

4、赋值操作符(=、+=、-=、/=、*=)

例:a = 5; a += 5(也可写作a = a+5)

5、单目操作符:只有一个操作数的操作符

!:逻辑反操作

-:负数操作符

sizeof:计算字节长度

例:int arr[10] = {0}; sizeof(arr) = ? //结果为40(一个整型变量字节长度为4,10个就是40)

6、关系操作符:>、<、>=、<=、!=、==

   其中“==”要与“=”操作符区别,一个是关系操作符,用来判断是否相等;一个是赋值操作符。

7、前置、后置操作符:++ 、--

   以++操作符的使用为例

   “++”放在变量之前,则变量先加1,后使用;反之,先使用,后变量加1。

int a = 5;
int b = ++a;
printf("%d",a); //输出结果为6
printf("%d",b); //输出结果为6

8、逻辑操作符:&&(逻辑与)、||(逻辑或)

  &&:符号两边条件表达式同时为真,则整个式子为真。

   ||:符号两边条件表达式有一个为真,则整个式子为真。

例:int a = 6,b = 5   则(a>5 && b<3)为假,(a>5 || b<3)为真。

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

    exp1?exp2:exp3

    此表达式的意义是:若exp1成立,执行exp2,否则执行exp3。

   例:max = a>b ? a : b(寻找两数之间的较大数)。

10、逗号表达式:exp1,exp2,exp3.......

   顾名思义,就是一串由逗号隔开的表达式

   从左向右每个表达式都要计算,但是输出的值是最后一个表达式的结果。

//例题:
int a = 5;
int b = 3;
int c = 1;
int d = (a = b+2,c = a-4,b = c+2)
printf("%d",d);//输出结果为3

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

    []:下标引用操作符,常用来访问数组成员

 ():函数调用操作符

    .:结构体成员变量的访问符号

十、关键字

  【定义】 关键字是C语言中有着特殊意义的字符,关键字由C语言提供,不可以自己创建。

   注意:变量名的创建不能使用关键字

    部分关键字:

    auto//定义自动变量

    typedef//类型重命名

    case、char、const、continue、default、enum

    extern//用来声明外部符号

     void、union、while、static等。

注意:include、define都不是C语言的关键字

对static关键字的介绍:

static a.静态的

用法:

1)修饰局部变量,改变了局部变量的生命周期,可以使得局部变量在局部范围使用完后而“不死”,本质是改变了变量的存储类型。

2)修饰全局变量,使得全局变量只能在自己的源文件(.c文件)内部使用,同工程下的其他源文件不可使用。

3)修饰函数,使得函数只能在自己的源文件内部使用,不能在其他源文件内部使用。

补充内容:C语言的内存划分

十一、指针

 【定义】首先我们要知道,内存是被划分成了多个内存单元的。每个内存单元都有编号,这些编号就称为内存单元的地址,也称为指针。

1、指针变量的定义 :类型 * 变量名 = 地址

#include<stdio.h>
int main()
{
	int a = 10;//a是整型变量,在内存中要分配要四个字节大小的空间
	//&a 是用来取a的地址的,实际上取到的是a分配内存单元第一个单元的地址
	printf("%p", &a);//"%p"是专门用来打印地址的
	int* pa = &a; //pa用来存放地址,是一个整型的指针变量
	return 0;
}

2、 指针变量的作用:利用解引用符*,我们可以通过指针变量来操作变量。例:

int main()
{
	int a = 10;
	int* pa = &a;
	*pa = 20;
	printf("%d", a);
	return 0;
}

以上代码输出的结果为:20。

这是因为*pa就是找到了指针指向的变量a,因此可以直接对a操作。

(指针就是地址)

3、指针变量的大小

   指针变量的大小与计算机的位数有关,与指针变量的类型无关。

   例:sizeof(char *); //其结果为4

   结论:指针变量大小在32位计算机上都是4个字节,在64位计算机上都是8个字节。

   原因:指针变量大小与地址的存储相关。

十二、结构体

1、我们可以使用结构体创建新的类型出来。

结构体使得C语言有能力描述复杂类型。

例:描述一个学生:姓名+年龄+性别。

先创建一个学生的类型

struct Stu
{
	char name[10];
	int age;
	char sex[4];
};

其中name、age、sex都是Stu这个类型的成员变量

2、结构体变量的初始化

int main()
{
	struct Stu s = { "张三",20,"男" };
	printf("%s %d %s", s.name, s.age, s.sex);
	return 0;
}

输出结果

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值