c语言中,关于指针变量前的*有两种表现形式:
变量定义时
如:char *pc; int *pi;
这里的*是跟随变量类型(char, int...)的,表示指针变量类型,是个标识符
变量引用时
如:*pc='a'; *pi=10;
这里的*表示引用指针变量地址中的数据,是个操作符。
*后跟的变量必须是指针类型变量,否则,将会出现编译错误。
C语言定义结构体时,为什么只有name前有*,其他变量前没有?
定义结构体变量其实就跟定义普通的变量相似,比如你在定义指针变量的时候,会有这样的定义:int *p;同样在定义结构体变量的时候也有这样的定义。就拿你说的这个而言,name 表示的就是一个指针型的结构体变量。它里面存的是一个地址,这个地址就是它所指向的那个结构体的首地址。总的来说*一般情况下...
C语言 指针 直接字符串变量前加*是什么怎么回事?没有提前定义啊_百度知 ...
加了*就表示这是指针(就是这个变量的存储地址,这是个char(字符)指针,就是只能存储字符类变量的地址)!这道题是传址调用, fun(s);就是把s[80]中的字符串的首地址传给形参a(这里a是字符型指针),之所以这样写,是为了让实参随着形参变而变!C语言:传值调用实参不能随着形参改变而改变,只有...
C语言 指针 直接字符串变量前加*是什么怎么回事?没有提前定义啊_百度知 ...
用在这里表示fun函数调用时需要的参数是一个char类型的指针,也就是地址,这里可以理解为这是一个定义,定义一个char类型的局部指针变量,如main函数里面调用时,fun(s)将字符串的初始地址传入fun函数。
c语言中指针前面的星号,什么时候可以省去,什么时候又必须带上呢?_百度...
我们现在来总结一下,在定义的时候*号,只是一个说明符。意义是告诉你p是一个指针,而不是一个其他数。在声明的时候就一定需要*了,所以请注意上面的对比。在引用的时候区别就相当简单了 p是指针变量,指的是一个变量的地址。p代表的是所指向的这个变量的值。举例:int a=3;int *p p=&a;printf...
*在前面和*在后面的区别c语言
指针变量,它是 单目运算符,顺序:右到左。用作 乘号,形式是:表达式*表达式,它是 双目运算符,顺序:左到右。= 用作 乘后赋值,形式是:变量*=表达式 q=p 这个是取p的地址赋值给q吗?不是,这里 后一个 星号是 乘法运算符,后面还有东西,例如:q=p*5;若是 取p的地址:若是 int q;...
c++变量、参数前加“*”什么意思?
当*用于定义时,是标明该变量为指针类型。指针变量是存放一个变量地址的变量,不同于其他类型变量,它是专门用来存放内存地址的,也称为地址变量。定义指针变量的一般形式为:类型说明符*变量名。类型说明符表示指针变量所指向变量的数据类型;*表示这是一个指针变量;变量名表示定义的指针变量名,其值是...
C语言指针中 *p 和 p 的区别
第一种情况,在定义时,* 用于区分指针变量,即有 * 则代表该变量是一个指针变量。但要注意,这里的 *p 实质上还是一个指针变量,* 只是起到一个标志的作用,表明这是一个指针变量。因此,在初始化时,应这样写:int a, *p = &a;而不能写成:int a, p = &a;第二种情况是定义以外的其他...
c语言的变量名能看成是一个指针么 另 指针的运算的问题 如下图
不能. 你自己写的代码都能把自己给搞晕, 你也真够可以了.&*i == *&i &*i是先得到i指向的变量, 然后再来个&, 又是这个变量的地址, 那就还是i &i是得到i的地址, 这个就是个二级指针, 然后再来个*, 得到这个二级指针指向的指针, 那就还是i.这点可以从C++的引用中证明.
C语言中指向指针的指针是什么意思
变量值:是变量本身的内容 变量地址:是该变量在内存中的位置编号 通俗来讲就是说这个变量fp只能接受一个指针变量的地址所以你看第8行在p前面加了一个’&‘取地址符号 也就是说把p这个变量的地址给了fp了fp的内容就是p的地址 1.接下来9行输出了a的值这个直接通过变量名a就能找到该变量的地址并且...
[答疑] c语言指针 *q=p 一道选择题
C)sizeof(*q)——计算出了一个char变量p[0]所占字节数,所以不正确。D)sizeof(p[0])——计算出了一个char变量p[0]所占字节数,所以不正确。p++操作是错误的,编译不过。因为p是数组名,是不能改变的所谓“常指针”,不能进行++、--操作。而q是普通指针,所以q++可以指向下一个元素,但...