太阳不下山 发表于 2021-7-1 23:23:46

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]
查看完整版本: c20210701