C语言指针什么时候要带*什么时候不带*?

如题所述

严格说来,指针什么时候都不带*。int *p,那个*是int的,不是p的。但为了在int下声明不是指针的变量,规定在每个指针变量前加一个*,以便编译器识别,这就使好多人误以为*是指针变量的了。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-02-21
带*的情况
1.声明的时候需要用*来表示声明的对象是一个指针。如:int* p;
2.使用的指针的值的时候。如:printf("p = %d",*p);
3.给指针赋值的时候。*p = 5;
不带*的情况:
1.使用指针的时候。如:int a = 0; p = &a;(p是int*)
2.表示字符串首地址的时候不用*。如:char* ch = "hello"; printf("%s",ch);
第2个回答  2013-02-23
声明的时候必须带* ;
使用的时候要取指针变量的值不带*,此时取得的是一个地址;要取实际值加*,你懂的
第3个回答  2013-02-19
指针是C语言很重要的知识,建议仔细看看。
定义指针的时候是一定要加*的,这样才会识别为指针。定义好了就不用加了。
当然如果指针指向函数A,用的时候也要加。
总之,分不同情况,看指针指向的是什么了。
第4个回答  2013-02-23
带*是指针的值,不是指针本身,不带*才是指针本身。比如 int *p;p就是个指针变量,这时*p是没有意义的,只有 p=new int;或把别的变量的地址赋给p,*p才有意义。

C语言指针什么时候要带*什么时候不带*?
严格说来,指针什么时候都不带*。int *p,那个*是int的,不是p的。但为了在int下声明不是指针的变量,规定在每个指针变量前加一个*,以便编译器识别,这就使好多人误以为*是指针变量的了。

C语言指针什么时候要带*什么时候不带*?
不带*的情况:1.使用指针的时候。如:int a = 0; p = &a;(p是int*)2.表示字符串首地址的时候不用*。如:char* ch = "hello"; printf("%s",ch);

C语言指针什么时候加星号什么时候不加
1、声明及定义一个指针时,需要用*表示标识符是一个指针。比如 int *p;定义一个指针,p是int *类型,这里的*主要说明变量是指针类型。2、作为间接访问运算符 int a = 2;int *p = &a;printf("%d\\n", p, *p);以上面的例子来说:p:是指针,是一个地址,它是int *类型。p:是指针所指内存...

C语言中运用指针的时候什么时候可以省略*号
没有省略一说 定义时有 * 才能说明它是指针变量, * 不是变量名的组成部分 注意区别 “使用指针变量” 和 “使用指针变量指向的东西”

c语言中指针前面的星号,什么时候可以省去,什么时候又必须带上呢?
int *p=&x\/\/其实在声明的时候这样也是可以的。但是这样写定义不明确。我们现在来总结一下,在定义的时候*号,只是一个说明符。意义是告诉你p是一个指针,而不是一个其他数。在声明的时候就一定需要*了,所以请注意上面的对比。在引用的时候区别就相当简单了 p是指针变量,指的是一个变量的地址。p...

请问c语言中形参为指针是为设么实参有时加&有时不加,求高手解答。_百度...
指针除了声明时前面带*外——特征为*号左侧有Int之类的说明符来修饰——,其他地方前面带上*就代表取对应变量的值(可以放心,指针变量不能进行乘法运算),不带*就代表对应变量在内存中的地址。如int *p=&a;接下来p就代表a的地址,*p才是a具体的值,可以把*和&当作互相抵消的一对。*p==*(&a)...

C语言中为什么要加星号!
在C语言中有指针的概念,在定义某个类型的指针时,会采用 TYPE *name;的形式。 具体说明在第三部分中一并叙述。3做取值运算符。对某个指针变量做*操作,表示取该指针指向地址中的值。在这种情况下*位于所要取值的指针变量前。如*p。比如 include <stdio.h>int main(){ int a=3; int *p...

C语言 函数指针调用时加星号与不加星号都行是为什么?
定义,因为它是定义。不带“*”,就无法区分是指针还是变量。&:叫做,取地址符。p1=&a;其实就是把a的地址取出来,赋给p1。你可以这么理解,*P1才是和变量a同一个等级的东西。&相当于降级取地址,那p1去掉星号*也相当于取地址。通俗来说*p本身就是为了地址操作而存在的,比如地址的交换,传递...

C语言函数名后面括号里的指针变量为何有时带星号有时不带?
因为释放空间对地址进行操作,需要参数是个指针变量,函数对链表所在地址进行操作 而排序函数对链表进行操作,需要参数是链表的本身的变量类型,函数对链表本身进行操作

C语言 指针 直接字符串变量前加*是什么怎么回事?没有提前定义啊_百度知 ...
加了*就表示这是指针(就是这个变量的存储地址,这是个char(字符)指针,就是只能存储字符类变量的地址)!这道题是传址调用, fun(s);就是把s[80]中的字符串的首地址传给形参a(这里a是字符型指针),之所以这样写,是为了让实参随着形参变而变!C语言:传值调用实参不能随着形参改变而改变,只有...

相似回答