关于一个简单for循环引起的c语言的复习以及后续

  • 因由

    char s[10],str1[10];
    for (int i = 0;i<10;i++){
    str1='1';
    }
    

起初已经几年没有再看过c语言了,在偶然下看到了这么一个题目,提出了char以/0做尾导致的数组溢出问题,决定重新看一下c语言,这个和目前的做的面向对象所不同类型的语言。以及后续所产生的一系列问题及解决和记录。

  • 后续
    在C语言中,字符串以char,在C#中,基本上在工作中都是直接应用String类型来存字符串,两者的区别在于值类型与引用类型。故由此来看一下值类型及引用类型。
    值类型直接将内存存储在栈内,由系统自动释放资源的数据类型.常见的int,double,char。
    值类型的基类来自于System.ValueType,值类型是堆栈分配,或者在结构中的以内联方式分配。
    引用类型由类型的实际值引用(类似于指针,&A)表示的数据类型,常见的类,委托,接口。
    引用类型是堆分配,引用用于传递参数及返回值。创建即初始化,不能有空引用。

  • 至此,由空引用问题想到了之前项目中的一个小问题
    在赋值过程中,初始化的空值可以正常通过;但在引用类型中赋空后,将此引用类型的对象赋值给需要被赋值的对象时,会报出未将对象引用至实例的问题。记录一下!

    再回到c语言与目前所用的C#中明显的不常用的类型,结构体。
    单看结构体是值类型,与面向对象的类不同,是一种完全可以自定义的类型,个人理解为int这种直接存栈类型的集合,与类不同,类则是存实际数据的引用。
    int a;int &b; a=&b,a!=b;a可直接用,b则无法直接使用,b为a的值的引用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值