C/C++新手学习笔记

一.用字符数组表示字符串需要注意的问题

1.若用双引号表示字符串,其末尾隐藏一个字符串结束符 '\0':`#include <stdio.h>

#include <stdlib.h>
#include <string.h>

int main(){

char s1[10]={'a','b','c'};
char s2[10]={'a','b','c','\0'};

char s3[10]="abc";
char s4[10]="abc\0";
char s5[]="abc";
char s6[]="abc\0";
char s7[3]={'a','b','c'};
char s8[]={'a','b','c','\0'};

int l1,l2,l3,l4,l5,l6,l7,l8;
int si1,si2,si3,si4,si5,si6,si7,si8;
 l1=strlen(s1);//3
 l2=strlen(s2);//3
 l3=strlen(s3);//3
 l4=strlen(s4);//3
 l5=strlen(s5);//3
 l6=strlen(s3);//3
 l7=strlen(s4);//3
 l8=strlen(s5);//3

 si1=sizeof(s1);//10
 si2=sizeof(s2);//10
 si3=sizeof(s3);//10
 si4=sizeof(s4);//10
 si5=sizeof(s5);//4
 si6=sizeof(s6);//5
 si7=sizeof(s7);//3
 si8=sizeof(s8);//4

printf("%d,%d,%d,%d,%d,%d,%d,%d\n",l1,l2,l3,l4,l5,l6,l7,l8);	
printf("%d,%d,%d,%d,%d,%d,%d,%d\n",si1,si2,si3,si4,si5,si6,si7,si8);
return 0;

}`

二.引用

1.引用的概念:

(1)引用仅是变量的别名,而不是实实在在地定义了一个变量,因此引用本身并不占用内存,而是和目标变量共同指向目标变量的内存地址,即共用内存

(2)引用和目标变量的地址是一样的,对引用的操作与对变量直接操作完全一样,即对引用的修改就是对目标变量的修改

(3)表达式中的取地址符&不再是取变量的地址,而是用来表示该变量是引用类型的变量。

(4)定义一个引用时,必须对其初始化,即 引用了谁

(5)使用一般变量传递函数的参数,即值传递,当发生函数调用时,需要给形参分配存储单元,形参变量是实参变量的副本;如果传递的是对象,还将调用拷贝构造函数

(6)使用指针作为函数的参数在被调函数中同样要给形参分配存储单元,调用时必须用变量的地址作为实参

(7)使用引用传递函数的参数,在内存中并没有产生实参的副本

int main()
{
   
int intOne;
int &rSomeRef = intOne;

intOne = 5;


cout << "intOne:" << intOne << endl;//5
cout << "rSomeRef:" << rSomeRef << endl;//5

int intTwo = 8;
rSomeRef = intTwo;
 
cout << "nintOne:" << intOne << endl;//8
cout << "intTwo:" << intTwo << endl;//8
cout << "rSomeRef:" << rSomeRef << endl;//8
return 0;
}
二.引用和指针的异同
1.不同点

①从现象上看,指针在运行时可改变其所指向的值,而引用一旦和某个对象绑定后就不再改变。这句话可以这样理解:指针可以被重新赋值以指向另一个不同的对象,但是引用总指向在初始化时被指定的对象,以后不能改变,但是指定的对象内容可以改变

②从内存上分配看,程序为指针变量分配

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值