c20210701
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>
#include <string.h>
int main()
{
char ch = 'w';
char* pc = &ch;
printf("%d\n", sizeof(pc));
//*pc = 'a';
//printf("ch=%c\n", ch);
//printf("pc=%p\n",pc);
return 0;
}
//int main()
//{
// int a = 10;//4个字节
// int* p = &a;
//有一种变量是用来存放地址的 - 指针变量
//printf("%p\n", &a);
//printf("%p\n", p);
//*p=20;//* - 解引用操作符
//printf("a=%d\n", a);
//printf("%p\n", &a);
// return 0;
//}
//#define max 100//后面只要遇到max,全部替换成100
//#define 定义标识符常量
//#define 还可以定义 宏-带参数
//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 = max;
/*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);
// return 0;
//}
//声明外部函数
//extern int add(int ,int );
//int main()
//{
// int a = 10;
// int b = 20;
// int sum = add(a, b);
//static 修饰函数改变其链接属性(作用域 - 不准确)
//函数具有外部链接属性 则: 外部链接属性 -> 内部链接属性
// printf("sum= %d\n",sum);
// return 0;
//}
//int main()
//{
//extern - 声称外部符号的
/*extern int g_val;*/
//当全局变量 g_val 被static修饰时,改变了全局变量的作用域
//static使全局变量只能在所在的源文件内部使用
// printf("g_val=%d\n",g_val);
// return 0;
//}
//void test()
//{
// static int a = 1;//静态的局部变量
//static 修饰局部变量,是局部变量生命变长
//a++;
//printf("a =%d\n", a);// 2 3 4 5 6
//如果没有static修饰,结果为 2 2 2 2 2
//}
//int main()
//{
// int i = 0;
// while (i < 5)
// {
// test();
// i++;
//
// }
// return 0;
//}
//int main()
//{
//typedef - 类型定义 - 类型重定义
/*typedef unsigned int u_int;
unsigned int num = 20;*/
//上下两行代码完全等价
// u_int num = 20;
//
// return 0;
//}
//int main()
//{
//register /*寄存器*/int a = 10;//建议把a定义成寄存器变量
/*int a = 10;
a = -2;*/
//int 定义的变量是有符号的 = signed int
// 定义无符号变量 unsigned int(无正负之说,永远都是正的,即绝对值)
// return 0;
//}
//int add(int x, int y)
//{
// int z = 0;
// z = x + y;
// return z;
//}
//int main()
//{
// //int arr = { 0 };
// //arr;//下标引用操作符 [ ]
// int a = 10;
// int b = 20;
// int sum = add(a, b);//函数调用操作符()
// return 0;
//}
//int main()
//{
// int a = 10;
// int b = 20;
// int max = 0;
// max = (a > b ? a : b);//三目操作符 又称 条件操作符
// printf("max= %d\n", max);
/*if (a > b)
printf("%d\n", a);
else
printf("%d\n", b);*/
// return 0;
//}
//int main()
//{
// 真 - 非0
// 假 - 0
//&& 逻辑与
/*int a = 3;
int b = 5;*/
//如果两个数任意一个为0,即为假,结果为0
//int c = a && b;// 两个都是真,结果 1
/*int c = a || b;*/
//逻辑或, 两者中有一个真及结果为1,同时为0,即为假,结果为0
// printf("%d\n",c);
//
// return 0;
//}
//int main()
//{
// int a = (3.14); //(类型)强制转化成整数型
// printf("%d\n", a);// a=3
// return 0;
//}
//int main()
//{
// int a = 10;
//int b = a++;//后置++,先赋值给b。a再加一(先使用,再++)
//printf("a= %d b= %d\n",a, b);// a 11 b 10
//int b = ++a;//前置++,a先加一。再赋值给b(先++,再使用)
//printf("a= %d b= %d\n", a, b);// a 11 b 11
//int b = a--;
//printf("a= %d b=%d\n", a, b);// a=9 b=10
// int b = --a;
// printf("a= %d b=%d\n", a, b);// a=9 b=9
// return 0;
//}
//int main()
//{
// int a = 0;//一个字节32bit
// int b = ~a;// b 是有符号的整形
//按(2进制)位取反
//0(符号位 + )000 0000 0000 0000 0000 0000 0000 0000
//1(符号位 - )111 1111 1111 1111 1111 1111 1111 1111
//原码 - 符号不变,其它取反得到 - 补码
//反码 - 加1 - 补码;
//反码 - 按位取反 - 原码
//补码 - 减一 - 反码
// 正数 - 原码、补码、补码 三码统一。
//负数在内存中存储的时候,存储的是二进制的补码
//1(符号位 - )111 1111 1111 1111 1111 1111 1111 1111(补码)
// 1111 1111 1111 1111 1111 1111 1111 1110(反码)
// 1000 0000 0000 0000 0000 0000 0000 0001(原码)
//printf("%d\n", b); //(-1)
//打印的是这个数的原码
// return 0;
//}
//int MAX(int x, int y)
//{
// if (x > y)
// return x;
// else
// return y;
//}
//int main()
//{
// int num1 = 10;
// int num2 = 20;
// int max = 0;
// max = MAX(num1, num2);
// printf("max = %d\n", max);
// return 0;
//}
页:
[1]