demo_3_1


#define _CRT_SECURE_NO_WARNINGS 1
#include
#include
//int main()
//{
// int a = 10;//向内存申请 4 个字节
// float f = 10.0;//向内存申请 4 个字节
//
// return 0;
//}

//void test()
//{
// printf("hehe\n");
//}
//int main()
//{
// test();//C中括号里面可以有参数也可以没有参数
// system("pause");
// return 0;
//}

//int main()
//{
// int a = 20;//4byte = 32bit
// //00000000000000000000000000010100 - 原码
// //00000000000000000000000000010100 - 反码
// //00000000000000000000000000010100 - 补码
// //0x00000014 - 十六进制
// int b = -10;
// //10000000000000000000000000001010 - 原码
// //11111111111111111111111111110101 - 反码
// //11111111111111111111111111110110 - 补码
// return 0;
//}

//int main()
//{
// int a = 20;
// return 0;
//}

//设计小的程序,知道当前机器的字节数
//int main()
//{
// //写一段代码告诉我们当前机器的字节数是什么
// int a = 1;
// char* p = (char*)&a;
// if (*p == 1)
// {
// printf("小端存储\n");
// }
// else{
// printf("大端存储\n");
// }
// system("pause");
// return 0;
//}

//函数编写
//check_sys()
//{
// int a = 1;
// char* p = (char*)&a;
// if (*p == 1)
// {
// return 1;
// }
// else{
// return 0;
// }
//}
//优化:
//check_sys()
//{
// int a = 1;
// char* p = (char*)&a;
// //返回1 - 小端
// //返回0 - 大端
// return *p;
//}
//优化:
//check_sys()
//{
// int a = 1;
// //直接对地址解引用然后返回皆可
// return (char*)&a;
//}
//int main()
//{
// //返回1 - 小端
// //返回0 - 大端
// int ret = check_sys();
// if (ret == 1)
// {
// printf("小端存储\n");
// }
// else{
// printf("大端存储\n");
// }
// system("pause");
// return 0;
//}
//指针类型的意义:
//1.指针类型决定了解引用能访问几个字节
//char *p; *p - 访问了1个字节
//int *p; *p - 访问了4个字节
//2.指针类型决定了指针 + 1, - 1,加或减的是几个字节
//char*p; p + 1 - 跳过一个字符,int*p;p+1 - 跳过一个整型(4个字节)

//int main()
//{
// int a = 0x11223344;
// int* p = &a;//走4个字节
// *p = 0;
// char* p = &a;
// *p = 0;//只走1个字节
// return 0;
//}

//int main()
//{
// char a = -128;
// printf("%u\n", a);
// system("pause");
// return 0;
//}

//int main()
//{
// unsigned int i;
// for (i = 9; i >= 0; i--)
// {
// printf("%u\n", i);
// Sleep(100);//睡眠100ms
// }
// system("pause");
// return 0;
//}

//int main()
//{
// char a[1000];
// int i;
// for (i = 0; i < 1000; i++)
// {
// a[i] = -1 - i;
// }
// printf("%d\n", strlen(a));
// system("pause");
// return 0;
//}

//unsigned char i = 0;//0~255
//int main()
//{
// for (i = 0; i <= 255; i++)
// {
// printf("hello world\n");
// }
// system("pause");
// return 0;
//}

//int main()
//{
// double d = 1E10;
// printf("%lf\n", d);
// system("pause");
// return 0;
//}

//int main()
//{
// int n = 9;
// float *pFloat = (float*)&n;
// printf("n的值为:%d\n", n);
// printf("pFloat的值为:%f\n", *pFloat);
//
// *pFloat = 9.0;
// printf("num的值为:%d\n", n);
// printf("pFloat的值为:%f\n", *pFloat);
// system("pause");
// return 0;
//}

//int main()
//{
// float f = 5.5;
// //5.5 - 101.1 - (-1)^0*1.011*2^2
//
// system("pause");
// return 0;
//}

int main()
{
int *p = NULL;//p 是整型指针 - 指向整型的指针 - 可以存放整型的地址
char* pc = NULL;//pc 是字符指针 - 指向字符型的指针 - 可以存放字符的地址
//数组指针 - 指向数组的指针 - 存放数组的地址
//int arr[10] = { 0 };
//arr - 首元素地址
//&arr[0] - 首元素的地址
//&arr - 数组的地址
int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
//数组的地址要存起来
//整型指针不能存放一个数组地址
p = &arr;
system("pause");
return 0;
}