1.浮点数在内存中的存储
#define _CRT_SECURE_NO_WARWINGS
#include <stdio.h>
//int main()
//{
// int a = 10;
// float f = 10.0;
//
// return 0;
//}
//int main()
//{
// int a = 20;//
// //00000000000000000000000000010100 -源码
// //00000000000000000000000000010100 - 反码
// //00000000000000000000000000010100 补码
// //0x00000014
// int b = -10;
// //100000000000000000000000000001010 - 源码
// //111111111111111111111111111110101 - 反码
// //1111 1111 1111 1111 1111 1111 1111 10110 - 补码
// //0xFFFFFF6
// return 0;
//}
//int main()
//{
// 1 - 1;
// //1+(-1)
// //
//
//}
//int check_sys()
//{
// int a = 1;
// char*p = (char*)&a;
// if (*p == 1)
// return 1;
// else
// return 0;
//}
//int check_sys()
//{
// int a = 1;
// char*p = (char*)&a;
// //返回1,小端
// //返回0,大端
// return *p;
//}
//int check_sys()
//{
// int a = 1;
// return *(char*)&a;
//}
////指针类型意义
////1.指针类型决定了指针解引用操作符能访问几个字节 cahr*p 访问了1个字节,int*p访问了四个字节
////2.指针类型决定了指针+1 -1,加的或者减是几个字节;cahr *p; p+1,跳过一个字节,int*p; p+1,跳过一个整型 -4个字节
//
//int main()
//{
// //写一段代码告诉我们当前机器的字节序是什么
// //返回1,小端
// //返回0.大端
// int ret = check_sys();
// if (ret == 1)
// {
// printf("小端\n");
// }
// else
// {
// printf("大端\n");
// }
// return 0;
//}
//int main()
//{
// int a = 0x11223344;
// /*int *p = &a;
// *p = 0;*/
// char*p = (char*)&a;
// *p = 0;
//
// return 0;
//}
//int main()
//{
// char = -1;
// //10000000000000000000000000000000
// //11111111111111111111111111111110
// //11111111111111111111111111111111
// signed char = -1;
// unsigned char = -1;//运用整型提升无符号数高位补0,补全最高位为32位之后在用源码输出
// printf("a = %d\n,b= %d\n,c = %d\n", a, b, c);
// return 0;
//}
//int main()
//{
// char a = -128;
// //1000000000000000000000100000
// //1111111111111111111111011111
// //1111111111111111111111100000
// printf("%u\n", a);//%u打印十进制无符号数
// char b = 128;
// printf("%u\n", b);
// return 0;
//}
//int main()
//{
// int i = -20;
// unsigned int j = 10;
// printf("%d\n", i + j);
// return 0;
//
//}
//int mian()
//{
// unsigned int i;
// for (i = 9; i >= 0; i--)
// {
//
// }
//}
//int main()
//{
// char a[1000];
// int i;
// for (i = 0; i < 1000; i++)
// {
// a[i] = -1 - i;
// }
// printf("%d", strlen(a));
// return 0;
//}
//int main()
//{
// double d = 1E10;
// printf("%lf\n", d);
//
// return 0;
//}
//9.0
//1001.0
//(-1)^0 *1.001*2^3
//(-1)^S *M *2^E
//s - 0
//M - 1.001
//E - 3
//0.5
//0.1
//(-1)^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("*pFlaot的值为:%f\n", *pFloat);
// return 0;
//
//}
//int main()
//{
//
//}
//int main()
//{
// float f = 5.5;
// //5.5
// //101.1
// //(-1)^0*1.011*2^2
// //S = 0;
// //M = 1.011
// //E = 2
// //0100 0000 1011 0000 0000 0000 0000 0000
// //(-1)*0 1.011* 2^2
// //0x40b00000
//
// //3.14
// //11.0100101010101
// return 0;
//}
//void test(int arr[])
//{
// int sz = sizeof(arr) / sizeof(arr[0]);
// printf("%d\n", sz);
//
//}
//int main()
//{
// int arr[10] = { 0 };
// test(arr);
//
// return 0;
//}
//int main()
//{
// char ch = 'w';
// char*pc = &ch;
// *pc = 'w';
// return 0;
//}
//int main()
//{
// char* p = "abcdef";//"abcdef"是一个常量字符串
// printf("%s\n", p);
// return 0;
//
//
//}
//int main()
//{
// char arr1[] = "abcdef";
// char arr2[] = "abcdef";
// const char* p1 = "abcdef";
// const char*
//
// p2 = "abcdef";
// if (p1 == p2)
// {
// printf("hehe\n");
// }
// else
// {
// printf("haha\n");
// }
// return 0;
// //if (arr1 == arr2)
// //{
// // printf("hehe\n");
// //}
// //else
// //{
// // printf("haha\n");
// //}
// //retur
//指针数组 是数组,用来存放指针
//int main()
//{
// int arr[10] = { 0 };//整型数组
// char ch[5] = { 0 };// 字符数组
// int* parr[4];//存放整型指针的数组 - 指针数组
// char* pch[5];//存放字符指针的数组 - 指针数组
//
// return 0;
//}
//int main()
//{
// int a = 10;
// int b = 20;
// int c = 30;
// int d = 40;
// int* arr[4] = { &a, &b, &c, &d };
// int i = 0;
// for (i = 0; i < 4; i++)
// {
// printf("%d ", *(arr[i]));
// }
// return 0;
//}
//int main()
//{
// int arr1[] = { 1, 2, 3, 4, 5 };
// int arr2[] = { 2, 3, 4, 5, 6 };
// int arr3[] = { 3, 4, 5, 6, 7 };
// int *parr[] = { arr1, arr2, arr3 };
//
// int i = 0;
// for (i = 0; i < 3; i++)
// {
// int j = 0;
// for (j = 0; j < 5; j++)
// {
// printf("%d ", *(parr[i] + j));
// }
// printf("\n");
//
// }
// 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 };
// int(*p)[10] = &arr;//数组的地址要存起来
// //上面的p就是数组指针
//
//
// return 0;
//}
//int main()
//{
// char* arr[5];
// pa = &arr;
// char*(*pa)[5] = &arr;
// int arr2[10] = { 0 };
// int(*pa2)[10] =&arr2;
// return 0;
//}
//int main()
//{
// int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
// int(*pa)[10] = &arr;
// int *p = arr;
// int i = 0;
// for (i = 0; i < 10; i++)
// {
// printf("%d ", *(p + i));
// }
// //int i = 0;
// //for (i = 0; i < 10; i++)
// //{
// // printf("%d ", *(*pa+i));//*pa == arr
// //}
// /*for (i = 0; i < 10; i++)
// {
// printf("%d ", (*pa)[i]);
// }*/
// return 0;
//}
//参数是数组的形式
//void print1(int arr[3][5], int x, int y)
//{
// int i = 0;
// int j = 0;
// for (i = 0; i < x; i++)
// {
// for (j = 0; j < y; j++)
// {
// printf("%d ", arr[i][j]);
// }
// printf("\n");
// }
//}
////参数是指针的形式
//void print2(int(*p)[5],int x,int y)
//{
// int i = 0;
// for (i = 0; i < x; i++)
// {
// int j = 0;
// for (j = 0; j < y; j++)
// {
// printf("%d ", p[i][j]);
// //printf("%d ", *(p[i] + j);
// /*printf("%d ", *(*(p + i) + j));*/
// //printf("%d ", (*(p + i))[j]);
// }
// printf("\n");
// }
//}
//int main()
//{
// int arr[3][5] = { { 1, 2, 3, 4, 5 }, { 2, 3, 4, 5, 6 }, { 3, 4, 5, 6, 7 } };
// print1(arr, 3, 5);//arr - 数组名 - 数组名就是首元素地址
// print2(arr, 3, 5);//
// /*int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
// int i = 0;
// int* p = arr;*/
//
// //for (i = 0; i < 10; i++)
// //{
// // printf("%d ", p[i]);
// // printf("%d ", *(p + i));
// // printf("%d ", *(arr + i));
// // printf("%d ", arr[i]);//arr[i] ==*(arr+i)== *(p+i) ==p[i]
// //}
//
// return 0;
//}
int arr[5]; //arr是一个5个元素的整型数组
int* parr1[10]; //parr1是一个数组,数组有10个元素,每个元素的类型是int*, parr1 是指针数组
int(*parr2)[10]; //parr2是一个指针,该指针指向了一个数组,数组有十个元素,每个元素的类型是int, parr2是数组指针
int(*parr3[10])[5];//parr3是一个数组,该数组有10个元素,每个元素是一个数组指针该数组指针指向的数组有5个元素,每个元素是int -- 二维数组
int main()
{
//字符指针
char ch = 'W';
char* p = &ch;
const char* p2 = "abcdef";//
//指针数组 - 数组 - 存放指针的数组
int* arr[10];
char* ch[5];
//数组指针
//int* p3;//整型指针 - 指向整型的指针
//char* p4;//字符指针 - 指向字符的
int arr2[5];//数组
int(*pa)[5] = &arr2;//取出数组的地址,pa就是一个数组指针
return 0;
}
标签:arr,return,进阶,int,char,printf,指针 From: https://blog.51cto.com/u_16316543/8634448