• 1、C到C++安全性增强


    1、C语言

    #include <stdio.h>
    
    int main(void)
    {
        const int a = 10; //在C语言里这里不赋值可以编译的过去,但是这里不初始化以后就没办法初始化
        //a = 100; 这里不能改但是下面的方法可以把a的值给改了
        int *p = &a; //如果写成const int *p =&a;拿掉int,const *p ,const修饰的是 *p ;*p就无法改变
    
        *p = 100;
        char *q = (char *)malloc(100);//虽然 char *q = malloc(100);也可以但是不严谨
        printf("a = %d
    ",a);
        return 0;
    }
    //const int a ; int const a; // 相等 因为如果把int去掉都是const  a;
    //int *const p  拿掉int,*const p这样的话修饰的是p,所以p的值不能改变,p指向的可以改变
    //const int *const p;这样就都不能改变。
    

      

     C++

    #include <iostream>
    #include <stdlib.h>
    using namespace std;
    
    int main()
    {
        const int a = 100;//真正的const
                            //如果一开始不初始化会报错
        //a = 200; //会报错
                        //名修栈道,暗度陈仓
    //   int *p = &a; //会报错,类型不匹配要写应该写成const int *p =&a
    //    *p = 10;    //在C语言里这里的a值是可以改变的,但是在C++不行
    
    //    char *q = malloc(100);//在C语言不会报错,C++报错,因为malloc默认是void *类型
        //所以应该写成
        char *q = (char*)malloc(100);
        //cout <<a<< endl;
        return 0;
    }
    

      

  • 相关阅读:
    按钮水波纹效果
    点击水波纹效果
    实现图片上传预览效果
    css 实现鼠标滑过流光效果
    插件地址参考
    移动前端经验
    移动端开发需要加的meta
    25款css动画库
    oracle 中的next_day函数
    Oracle replace函数
  • 原文地址:https://www.cnblogs.com/yygsj/p/5472509.html
Copyright © 2020-2023  润新知