栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c/c++常见问题-----引用和指针2

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c/c++常见问题-----引用和指针2

1. 判断下列哪些定义是错误的:

int a = 7;
const int b = 100;
int &c = b;    //错误:不能用常量类型的变量定义非常量类型的引用;
const int &d = a;

a++;
d++;// 不能修改常量的引用,修改变量的值

2.引用和指针的区别

指针 引用
声明赋不赋初值都可以必须赋初值
可修改性随时修改不能被修改
NULL可以指向一段空的地址不能为空
检查合法性要经常检查不需要检查

语言层面引用和对象一样,但在二进制层面,引用 一般都是通过指针来实现的,只不过编译器已经帮助我们实现;

3.为啥传引用比传指针更安全

引用一旦被初始化,就不能被更改,所以很安全;

指针可以随时被改变,并且可以不被初始化,或为NULL,即使是const指针仍存在空指针并且存在野指针;

4.复杂的指针声明 

1.定义一个指向整型数的指针
int *a;
2.指向指针的指针,它指向的指针是指向一个整形数
int **a;
3.有10个整型数的数组
int a[10];
4.有10个指针的数组,指向整型数的
int *a[10];
5.有10个整型数数组的指针
int (*a)[10];
6.指向函数的指针,该函数有一个整型数并返回一个整型数
int (*a)(int k);
7.有10个指针的数组,指针指向一个函数,函数有一个整型参数,并返回一个整型数
int (*a[10])(int a);

 5.用指针赋值

       

#include 

int main()
{
    char a[]="hello world";
    char * ptr = a;
    
    printf("%cn",*(ptr+4));//o
    printf("%cn",ptr[4]);//o
    printf("%cn",a[4]);//o
    printf("%cn",*(a+4));//o
    
    *(ptr+4) +=1;//p
    printf("%sn",a);//hellp world
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/928264.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号