首页 > 其他分享 >初始C语言 (2)

初始C语言 (2)

时间:2022-11-01 23:33:57浏览次数:56  
标签:return int max C语言 -- printf main 初始

  • ‘\0’,0, '0'的区分
int main()
{
  //字符串结束的标志:'\0'
  //'abcdef'
  //’\0‘ -转义字符 -->ASCII码值为0
  //0 -->数字0
  //’0‘ -数字字符0 -->ASCII码值为48
  //EOF -end of file -文件结束标志 值为-1
    return 0;
}

 

  • 求两个数的较大值
    int main()
    {
      int num1 = 0;
      int num2 = 0;
      scanf("%d%d",&num1,&num2);
      if(num1>num2)
      {
        printf("%d\n",num1);
      }
      else
      {
         printf("%d\n",num2);
      }
        return 0;
    }

     

int MAX(int x, int y)
{
    if (x > y)
        return x;
    else
        return y;
}

int main()
{
    int num1 = 0;
    int num2 = 0;
    int max = 0;
    scanf("%d%d", &num1, &num2);
    max = MAX(num1, num2);
    printf("较大值是 %d\n", max);
    return 0;
}
  • sizeof用法
int main()
{
    int a = 10;
    int arr[] = { 1,2,3,4,5,6 };
    printf("%d\n", sizeof(a));
    printf("%d\n", sizeof(int));
    printf("%d\n", sizeof a);
    printf("%d\n", sizeof(arr)); //计算数组大小,单位是字节
    printf("%d\n", sizeof(arr) / sizeof(arr[0]));

    return 0;

}
  • ~按位取反
int main()
{
    int a = 0; //4个字节,32个比特位
    int b = ~a; //b是有符号的整型
    //~ --按(二进制)位取反
    //0(最高位是符号位,0表示是一个正数)0000000000000000000000000000000
    //1(最高位是符号位,1表示是一个负数)1111111111111111111111111111111
    //原码、反码、补码
    // 原码符号位不变,其他位按位取反得到反码;反码加一得到补码
    //负数在内存中存储的时候,存储的是二进制的补码
    //1111111111111111111111111111111   补码
    //1111111111111111111111111111110   反码
    //1000000000000000000000000000001   原码 -1
    printf("%d\n", b);//使用的,打印的是这个数的原码
    return 0;
}

只要是整数,内存中存储的都是二进制的补码

正数 -原码,反码,补码相同

负数:

原码        -->  反码          -->补码

直接按照正     原码的符号位不变   反码+1    

负写出的二进制序列  ,其他位按位取反得到    

//-2

原码:10000000000000000000000000000010

反码:11111111111111111111111111111101

补码:11111111111111111111111111111110

 

  • --,++
    int main()
    {
    
        int a = 10;
        //int b = a++; //后置++,先使用,再++
        //int b = ++a; //前置++,先++,再使用
        //int b = a--; //后置--,先使用,再--
        int b = --a; //前置--,先--,再使用
        printf("a = %d b= %d\n", a, b);
     
        return 0;
    }

     

(类型)强制转换

int main()
{
    int a = (int)3.14;
    return 0;
}
  • 关系操作符

> , >= ,< ,<= , !=用于测试不相等, == 用于测试相等

 

  • 逻辑操作符

&&逻辑与

|| 逻辑或

int main()
{
    //假-0
    //真-非0
    //&& -逻辑与
    int a = 1;
    int b = 3;
    //int c = a && b;
    // || -逻辑或
    int c = a || b;
    printf("c =%d\n", c);
    return 0;
}

 

  • 条件操作符 -(三目操作符 -因为有三个操作数)

exp1 ? exp2:exp3 //如果exp1成立,则执行exp2;如果exp1不成立,则执行exp3

int main()
{
    int a = 10;
    int b = 20;
    int max = 0;
    max = (a > b ? a : b);
    printf("较大值=%d\n", max);
    return 0;
}

 

  • 下标引用、函数调用
    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 break case char const continue default do double
  else enum extern float for goto int long register return
  short signed sizeof static struct switch typedef union unsigned
  void volatile while

 

auto -自动

int main()
{
    auto int a = 10;//局部变量 -自动变量
    return 0;
}
  • register 寄存器关键字

计算机存储数据:

寄存器

高速缓存

内存

硬盘

int main()
{
    //int a = 10;
    //a = -2;
    ////int定义的变量是有符号的  signed int;
    unsigned int num = -1; //永远都是正数

    return 0;
}

 

  • typedef --类型定义(类型重定义)
int main()
{
    typedef unsigned int u_int;
    unsigned int num = 20;
    u_int num2 = 20;
    return 0;
}

 

1.static修饰局部变量 局部变量的生命周期边长

2.static修饰全局变量 改变了变量的作用域

让静态的全局变量只能在自己所在的源文件内部使用,出了源文件就没法再使用了
3.static修饰函数 改变了函数的链接属性 把外部链接属性改变为了内部链接属性

static修饰局部变量
局部变量的生命周期变长
void test()
{
    static int a = 1; //a是一个静态的局部变量
    a++;
    printf("a = %d\n", a);
}
int main()
{
    int i = 0;
    while (i < 5)
    {
        test();
        i++;
    }
    return 0;
}
static修饰全局变量
改变了变量的作用域 -让静态的全局变量只能在自己所在的源文件内部使用,出了源文件就没法再使用了
int main()
{
    //extern -声明外部符号的
    extern int g_val;
    printf("g_val = %d\n", g_val);
    return 0;
}
//static修饰函数
//也是改变了函数的作用域 -说法不准确
//static修饰函数改变了函数的链接属性
//外部链接属性 -->内部链接属性

声明外部函数
extern int Add(int, int);
int main()
{
    int a = 10;
    int b = 20;
    int sum = Add(a, b);
    printf("sum = %d\n", sum);
    return 0;
}
  • #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 = 10;
        int b = 20;
        //函数
        int max = Max(a, b);
        printf("max = %d\n", max);
        //宏的方式
        max = MAX(a, b);
        printf("max = %d\n", max);
        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);
        return 0;
    }
    int main()
    {
        char ch = 'w';
        char* pc = &ch;
        *pc = 'q';
        printf("%c\n", ch);
        return 0;
    }

    指针变量的大小

指针大小在32位平台上是4个字节,64位平台上是8个字节。

 

标签:return,int,max,C语言,--,printf,main,初始
From: https://www.cnblogs.com/yxl6/p/16849560.html

相关文章