c语言指针与引用
⑴ 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)的代码