当前位置 博文首页 > HyDraZya的博客:【C语言基础】C语言初步认识(2)
目录
1.按位取反
?2.自动运算
3.逻辑运算符
4.条件运算符
5.下标引用、函数调用运算符
6.关键字
7.常用关键字
8.#define定义常量
9.指针?
10.计算机 存储数据
~: 按(2进制)位取反
#include <stdio.h>
int main()
{
//补码 ——> 反码 ——> 原码码
//负数在内存中存储的时候,存储的是二进制的代码
//00000000000000000000000000000000 -二进制码
//11111111111111111111111111111111 -补码
//11111111111111111111111111111110 -反码
//10000000000000000000000000000001 -原码(反码-1)
int a = 0;
int b = ~a;
printf("%d\n", b);
return 0;
}
#include <stdio.h>
int main()
{
int a = 10;
int b = a++;//后置++,先使用,再++
//a = 11,b = 10
int b = ++a;//前置++,先++,后使用
//a = 11,b = 11
int b = a--;//后置--,先使用,再--
//a = 9 ,b = 10
int b = --a;//前置--,先--,后使用
//a = 9 , b = 9
printf("a = %d b = %d\n", a, b);
return 0;
}
#include <stdio.h>
int main()
{
//真 - 非0
//假 - 0
//&& - 逻辑与
//|| - 逻辑或
int a = 0;
int b = 5;
int c = a || b;
printf("c = %d\n", c);//逻辑中两变量都为1则为1,只要有一个为0则为0
int c = a && b;
printf("c = %d\n", c);//逻辑中两变量其中一个为1则为1,否则为0
return 0;
}
#include <stdio.h>
int main()
{
int a = 10;
int b = 20;
int max = 0;
max = (a > b ? a : b);
//同等于
if (a > b)
{
max = a;
}
else
{
max = b;
}
printf("最大值是:%d\n", max);
return 0;
}
#include <stdio.h>
int Add(int x,int y)
{
int z = 0;
z = x + y;
return z;
}
int main()
{
int arr[10] = {0};
arr[4];//[] - 下表引用运算符
int a = 10;
int b = 20;
int sum =Add(a, b);//() -- 函数调用运算符
return 0;
}
关键字 | 说明 |
auto | 声明自动变量 |
short | 声明短整型变量或函数 |
int | 声明整型变量或函数 |
long | 声明长整型变量或函数 |
float | 声明浮点型变量或函数 |
double | 声明双精度变量或函数 |
char | 声明字符型变量或函数 |
struct | 声明结构体变量或函数 |
union | 声明共用数据类型 |
enum | 声明枚举类型 |
typedef | 用以给数据类型取别名/定义 |
const | 声明只读变量 |
unsigned | 声明无符号类型变量或函数 |
signed | 声明有符号类型变量或函数 |
extern | 声明变量是在其他文件正声明 |
register | 声明寄存器变量 |
static | 声明静态变量 |
volatile | 说明变量在程序执行中可被隐含地改变 |
void | 声明函数无返回值或无参数,声明无类型指针 |
if | 条件语句 |
else | 条件语句否定分支(与 if 连用) |
switch | 用于开关语句 |
case | 开关语句分支 |
for | 一种循环语句 |
do | 循环语句的循环体 |
while | 循环语句的循环条件 |
goto | 无条件跳转语句 |
continue | 结束当前循环,开始下一轮循环 |
break | 跳出当前循环 |
default | 开关语句中的“其他”分支 |
sizeof | 计算数据类型长度 |
return | 子程序返回语句(可以带参数,也可不带参数)循环条件 |
(1)typedef:类型定义 -类型重定义
#include <stdio.h>
int main()
{
typedef unsigned int u_int;
unsigned int num1 = 0;
u_int num2 = 0;
return 0;
}
(2)static
代码1:
#include <stdio.h>
void test()
{
static int a = 1;//a 是一个静态的局部变量
a++;
printf("a =%d\n", a);//2 3 4 5 6
}
int main()
{
int i = 0;
while (i<5)
{
test();
i++;
}
return 0;
}
代码2:
#include <stdio.h>
void test()
{
static int i = 0;
i++;
printf("%d", i);
}
int main()
{
int i = 0;
for(i = 0; i < 10; i++)
{
test();
}
return 0;
}
#define?定义标识符常量
#define?可以定义宏-带参数
#include <stdio.h>
int Max(int x, int y)
{
if (x > y)
return x;
else
return y;
}
//宏的定义
#define MAX(X,Y) (X>Y?X:Y)
int main()
{
int a = 10;
int b = 20;
int max = Max(a, b);
printf("max = %d\n", max);
//宏的方式
max = MAX(a, b);
//max = (a>b?a:b)
printf("max = %d\n", max);
getchar();
return 0;
}
#include <stdio.h>
int main()
{
int a = 10;//申请了4个字节的空间
printf("%p\n", &a);
int* p = &a;//取地址(随机)
//p是一个变量-指针变量
printf("%p\n", p);
*p = 20;//- 解引用操作符/间接访问操作符
printf("a = %d\n", a);
return 0;
}
?