当前位置:首页 » 编程语言 » c语言指针与引用

c语言指针与引用

发布时间: 2022-08-12 04:45:32

c语言 指针和引用

在定义中如int *p=&i;是定义了指针的同时给其赋值(p指针指向i),只有定义时可以这么写,在语句中*p=&i;则是将i的地址的代码给了*p,也就是p指针指向了i的地址,而不是i;只有*p=i才是p指针指向i;
printf("%d",&i);printf("%d",p);
的结果才是一样的,都是输出i的地址。
printf("%d",i);printf("%d",*p);
的结果是一样的,都是i的值。这一块内容就是复杂,希望这样解释你能明白。

⑵ 求助,关于C语言指针变量的引用,画勾的部分求大佬帮我举一些例子

c语言中,指针变量对数组元素的引用,举例说明如下(对一维数组的引用):
假设int a[]={1,2,3,4,5,6,7,8,9,10},*p=a;
要引用第八个元素8(位置号为7),有3种方法:
1、下标法,a[7]
2、指针法,*(p+7)
3、数组名法,*(a+7)
特别地,当需要引用数组的第一个元素1(位置号为0,通常称之为“首元素”)时,除了上面的三种方法(a[0]、*(p+0)、*(a+0))外,还可以把*(p+0)简化为*p,把*(a+0)简化为*a。
如不明白请留言。

⑶ C语言的指针和c++的引用有什么共同点和区别

C语言的指针,相当于在内存中开辟了4字节的空间,用来保存该指针所指向的数据在内存中的地址..对指针所指的内容进行操作,就是对变量进行操作...
C++中的引用,相当于给变量起了个别名..对别名的操作,即是对原变量的操作..比如一个人叫张三,别名叫三娃..另一个人喊"张三"和喊"三娃"都指的是同一个人....

⑷ C语言中引用及指针和引用的联系与区别

C语言中引用和指针的用法很相似,在做函数参数时都是传递变量的地址,而不是传递一个变量的副本,都可以返回对参数变量的修改。主要区别在于参数的传递形式上。
指针的形式类似于 : int *pInt;
引用的形式类似于 : int &pInt;

⑸ C语言指针类型的变量可以加引用吗

C语言是没有引用这个定义的,c++里面才有,它主要是带回作用,不过指针也可以起到带回作用,带回的是指针所指向的值而不是指针本身。
像这种如果是保证F指向的值带回的话,可以不用引用。
就像C语言介绍的真交换一样,用指针就可以带回。

⑹ C语言中指针和引用的区别

指针,全称为指针变量,是用来存储内存地址的一种变量。程序中,一般通过指针来访问其指向的内存地址中的内容(数据)。

引用,是C++中提出来的一种新的使用变量的方式,即,给实际变量起个别名,通过这个别名来引用实际的变量。标准C中不支持变量的引用。

这两个概念没有任何相关性。

指针是实实在在的变量,有自己的内存存储空间,它可以指向任何有效的变量。

引用是一种形式、方法,定义的引用变量,实际上是原实际变量的另一个名称(别名),引用变量本身没有自己的实际存储空间,操作引用变量,就是在操作实际变量。

如:

⑺ c语言指针传递和引用传递都要用到&符号,分别是什么意思

c语言其实没有引用的概念,只有与指针相关的取地址符&
由于引用的实际意义相当于形参=实参,而使用指针的效果与引用是一致的,同时c++的引用符号是&,所以有的时候容易混淆

⑻ c语言中指针和引用的区别,以及指针的多重调用

指针,全称为指针变量,是用来存储内存地址的一种变量。程序中,一般通过指针来访问其指向的内存地址中的内容(数据)。
引用,是C++中提出来的一种新的使用变量的方式,即,给实际变量起个别名,通过这个别名来引用实际的变量。标准C中不支持变量的引用。
这两个概念没有任何相关性。
指针是实实在在的变量,有自己的内存存储空间,它可以指向任何有效的变量。
引用是一种形式、方法,定义的引用变量,实际上是原实际变量的另一个名称(别名),引用变量本身没有自己的实际存储空间,操作引用变量,就是在操作实际变量。

⑼ C语言中的指针和C++中的引用区别有哪些

1) 引用必须被初始化,指针不必。
2) 引用初始化以后不能被改变,指针可以改变所指的对象。
3) 不存在指向空值的引用,但是存在指向空值的指针。
C++中尽量用引用。个人觉得所有的引用都可以用指针,但指针比引用容易出错。
引用当然更直观更直接,做参数时,如果在函数内不刻意要用指针的那些副作用(如越界访问,动态定向什么的),引用可以代替指针。

⑽ C语言中指针与C++中的引用有什么具体的区别

只有使用上的区别,实质都是指针
void
swap1(int*
a,
int*
b){int
c
=
*a;
*a
=
*b;
*b
=
t;}
void
swap2(int&
a,
int&
b)
{int
c
=
a;
a
=
b;
b
=
t;}
//
编译器帮你生成{int
c
=
*a;
*a
=
*b;
*b
=
t;}的代码
调用的时候
int
a,
b;
swap1(&a,
&b);
//
传地址
swap2(a,
b);
//
传引用,但编译器会帮你生成swap2(&a,
&b)的代码

热点内容
我的世界服务器怕被破坏怎么办 发布:2025-01-21 02:33:15 浏览:932
linux下交叉编译实验 发布:2025-01-21 02:19:00 浏览:434
java培训班多少钱 发布:2025-01-21 02:17:23 浏览:335
帝豪gl哪个配置是电容屏 发布:2025-01-21 02:11:23 浏览:304
openwrt编译零基础 发布:2025-01-21 01:53:30 浏览:20
视频聊天室源码php 发布:2025-01-21 01:39:29 浏览:939
游戏脚本xp 发布:2025-01-21 01:25:48 浏览:210
cfa建模需要什么电脑配置 发布:2025-01-21 01:16:41 浏览:97
配置获取异常怎么办 发布:2025-01-21 01:16:29 浏览:642
植发都加密吗 发布:2025-01-21 01:16:28 浏览:736