学习记录P3

 ~按位取反

 

                                                                   ++

#include <stdio.h>
int main()
{
	int a = 10;
	int b = a++;//++为后置,先使用,再赋值给b,结果为:a =11,b = 10
	//int a = 10;
	//int b = ++a;前置++,先++,然后赋值给b,结果为a = 11,b = 11
	printf("%d,%d\n", a, b);
	return 0;
}

根据上面代码可知,--是跟++一样的道理 

强制类型转换

#include <stdio.h>
int main()
{
	int a = (int)3.14;
	printf("%d\n", a);
	return 0;
}

将小数类型转换为整型,但是这样也会丢失小数数据,所以不建议使用

==

int a = 0;
int b = 10;
if (a >= b);//>=用来判断ab之间大于等于的关系,同理<,>道理相同
if (a == b);//==用来判断相等,=则为赋值,!=则用来测试判断不相等

 &&  ||

int c = a && b;//&&为与逻辑,有零出零,全一出一
int c = a || b;//||为或逻辑,又一出一,全零出零

条件操作符 exp1 ? exp2 : exp3 

int a = 10;
int b = 20;
int max = 0;
max = (a > b ? a : b);//exp1 ? exp2 : exp3 
//a要是大于b的话a将赋值给max,如果不满足大于的条件的话则b赋值给max
//意思即为
if (a > b)
max = a;
else
max = b;

[]下标引用操作符

()为函数调用符

int crr(int z, int y)
{
	int x = 0;
	x = z * y;
	return x;
}
int main()
{
	int a = 10;
	int b = 20;
	int sum = crr(a, b);
	printf("%d\n", sum);
	return 0;
}

常用关键字 

auto-自动 

// auto int a = 10;//auto被自动省略了

   break-暂停  在switch中做跳出循环

case 选择语句

char-字符类型

const - 修饰常变量

contine-继续

default -默认循环

double-双精度

else-如果语句

enum-枚举常量

 extern - 引用外部符号

float - 单精度浮点数

for- 循环

int-整型

long-长整型

register-寄存器关键字

register int b = 20;//把a变量存进寄存器,可以快速提取

return-返回

short-短整型

signed-定义成有符号数-日常定义中只需输入int

如果需要定义无符号整数,则需要unsigned

sizeof-计算字符大小

static-静态-修饰局部变量

此时的test每进入一次,a都会重新赋值

因为a一出{}生命周期就结束了

此时要是加入static,a就不会因为跳出生命周期而销毁

static也可以修饰全局变量

修饰局部变量中修饰的是局部变量的生命周期

修饰全局变量中修饰的是全局变量的作用域 -让静态的全局变量只能在自己所在的源文件内部使用

出了源文件就没法使用了      

static也可以修饰函数,修饰函数外部链接变为内部链接

#include <stdio.h>
void crr()
{
	static int x = 1;//修饰局部变量,使之a得到永生,不会因为跳出生命周期消失
x++;
printf(" % d\n", x);//此时结果为23456
	
}
int main()
{
	int y = 0;
	while (y < 5)
	{
		crr();
			y++;
	}
	return 0;
}

struct-结构体关键字

switch-选择语句

typedef-类型定义

typedef unsigned int uint;//类型重定义,可以更改类型名字,别名
	uint a = 10;
	int b = 20;

union-共用体

while-循环

#define定义常量和宏

#include <stdio.h>
#define max 12//定义标识符常量
int main()
{
	int a = max;
	return 0;
}

定义宏

#include <stdio.h>
#define max(x,y) ((x) + (y))//定义宏
int main()
{
	int sum = max(2, 3);
	printf("max = % d\n", sum);
	return 0;
}

内存

#include <stdio.h>
int main()
{
	int a = 10;//等于向内存申请4个字节的空间
	printf("%p\n", &a);//&取地址
	return 0;
}

 

*-解引用操作符/间接访问操作符

#include <stdio.h>
int main()
{
char vf = 'd';
	char* pc = &vf;
	*pc = 'h';//*--解引用操作符
	printf("%c", vf);

	return 0;
}

 

结构体

#include <stdio.h>
struct  book//做结构体类型首先得定义
{
	char name[20];
	int price;
};
int main()
{//使用结构体前得先初始化结构体数据
	struct book a = { "军事理论",125 };//利用结构体类型创建一个该类型的结构变量
	struct book* fb = &a; //写指针类型是直接找结构体来写
	printf("%s\n", (*fb).name);//当用指针地址来寻找结构体就用这种方法
	printf("%d\n", (*fb).price);
	printf("书的名字为%s\n", a. name);
	printf("书的价格为%d\n", a. price);
	a.price = 25;
	printf("降价后书的价格为%d\n", a.price);
	return 0;
}
	printf("%s\n", fb->name);//打印时有两种写法a.name/fb->name

 strcpy-字符串拷贝,库函数

strcpy(a.name, "wgbsb");//strcpy字符串拷贝-库函数-string.h

一般都要开头声明#include <string.h>,但目前2022版本为声明也可以使用

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值