C语言笔记4 - 关键字/操作符

关键字

auto  break   case  char  const   continue  default  do   double else  enum   
extern float  for   goto  if   int   long  register    return   short  signed
sizeof   static struct  switch  typedef union  unsigned   void  volatile  while

常见关键字

sizeof

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

int main()
{
	/********** 关键字 **********/
	//sizeof 是一个关键字,用于计算类型或者变量的大小(单位:字节)
	//sizeof 不是函数,后面的括号可以省略
	int a = 10;
	int arr[10] = { 0 };
	printf("%d\n", sizeof(int));
	printf("%d\n", sizeof(a));
	printf("%d\n", sizeof a);					//变量a占用4个字节
	printf("%d\n", sizeof arr);					//数组总共占用字节
	printf("%d\n", sizeof arr[0]);				//数组单个元素所占字节
	printf("%d\n", sizeof arr / sizeof arr[0]);	//元素个数
	return 0;
}

运行结果:

typedef类型重定义

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

typedef unsigned int u_int;

int main()
{
	/********** 关键字 **********/
	//auto是自动的,每个局部变量都是auto修饰的,被省略掉了
	//在新的C语言语法中有其他用法,暂时不考虑

	//register 寄存器关键字,寄存器比高速缓存更快,适用于大量频繁被使用的数据
	//现在编译器发展迅速,该关键字用的很少
	
	//define, include不是关键字,是预处理指令

	//typedef类型重定义
	unsigned int num = 100;
	u_int num2 = 100;
	printf("%d, %d", num, num2);

	return 0;
}

static静态类型

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

void test() 
{
	static int a = 1;//改变局部变量的生命周期(本质上是改变了变量的存储类型)
	a++;
	printf("%d", a);
}

int main()
{
	/********** 关键字 **********/
	
	//static - 静态的
	//1.修饰局部变量
	//2.修饰全部变量,使得这个全局变量只能在自己所在的源文件(.c)内部可以使用,
	//  此时全局变量的不具有外部链接属性,即使用extern也不能调用
	//3.修饰函数,使得自己只能在自己所在的源文件内部使用,
	//  即使在其他文件中声明此函数也不能在除了自己所在源文件中被使用
	int i = 0;
	while (i < 10) {
		test();
		i++; 
	}

	return 0;
}

运行结果:

内存划分:

 

 

 操作符

取反~

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

int main()
{
	/********** 操作符 **********/
	int a = 0;			//int 有符号位
	printf("%d\n", ~a);	//按二进制位取反(符号位也取反),整数在内存中存储的是补码,打印出来的是原码
						//0x00 ~取反 -> 0xFF(计算机仍然认为是补码) -> 0xFE(反码) -> -1(原码)
	return 0;
}

条件操作符(三目操作符)

/* 条件操作符(三目操作符) */
	//exp1?exp2:exp3 //if exp1==true, exp2; else exp3
    
	int a = 0;
	int b = 2;
	int max = a > b ? a : b;
	printf("%d", max);

逗号表达式,从左向右计算,并且把最后一个表达式的结果作为整个表达式的结果

//逗号表达式,从左向右计算,并且把最后一个表达式的结果作为整个表达式的结果
	
	int a = 1;
	int b = 3;
	int c = 5;
	int d = (a = b + 2, c = a - 4, b = c + 2);
	printf("a = %d, b = %d, c = %d, d = %d", a, b, c, d);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值