大家好,今天小编关注到一个比较有意思的话题,就是关于在C语言李p的问题,于是小编就整理了3个相关介绍在C语言李p的解答,让我们一起看看吧。
c语言指针*p中p++什么意思?
而*p 是 取内容的意思,即 取当前存放内容对应(指向)的地址 里面的内容。
而p++ 就是把 p里面的内容+1个单位,因为 p存的是地址,所以是 地址+1,也就是下一个地址。那么指针p 就指向了 下一个地址了。
在c语言中p*=i是什么意思啊?
*=是C语言的特殊操作符号,调用形式为a*=b;其等效于a=a*b;但是用*=的形式,可以减少代码输入,同时还可以提高运行效率。p*=i也就是p=p*i, 即将原始的p值与i值相乘, 结果赋值给p。C语言中类似的符号还有+=, -=, /=, %=, ^=, |=, &=等等。
C语言声明指针的时候int *p到底是什么意思?
通常定义指针时,星号都是写在紧贴变量的左边,可以把这个星号写在紧贴类型右边,这样理解起来可能更深刻一点,譬如int* p这表示p是一个int*类型的变量,也就是经常说的指向int类型的指针变量,之后只进行指针赋值或移动操作时就不需要使用星号了,而要获得指针指向的地址所对应的值时,需使用星号解引用
int *p的意思是定义了一个变量p,这个p的类型是一个int型指针,也就是(int*)。
int *p = &a(初始化操作)相当于
int *p;
p=&a;(赋值操作)
这个p要更深刻的理解他的含义,它的内存分配地址是随机的,而它指向的却是固定地址,这个固定地址是指指向的变量的地址,这个地址必须是固定的,哪怕是编译器随机分配的,但对它来说也是固定的,这就是他的含义。
在C语言中,有一个神奇的符号,也就是*号。是的,这是一个非常神奇的符号,神奇到有时候我都想骂街了,为什么C语言发明者要用*这个星号来同时表示乘法运算和指针定义呢?既然C语言就是这么发明了,我们也只能这么接受了。
星号*在指针上的使用,你记住两点就行了。第一点,星号*可以用在指针定义的时候;第二点,星号*可以用在指针使用的时候。
先说第一点。定义指针的时候,你怎么告诉编译器这是一个指针变量,而不是一个普通的整型变量呢?你说,在不适用星号的情况下,你怎么告诉编译器?你肯定没办法告诉编译器啊,你想让编译器知道这是一个指针变量肯定要给这个指针变量加个什么修饰词吧!很不幸,指针的修饰词就是星号*。也就是说,定义指针变量p的时候,前面加个星号*没有别的意思,就是告诉编译器,这是一个指针变量,就是告诉其他阅读程序员这是一个指针变量。除此以外,真的没有别的意思了。所以在定义指针的时候,前面就加个星号就得了,别去管为什么了,就像你会去管为什么1加1等于2吗?
再说第二点。使用指针的时候,你怎么得到指针指向的那个值呢?你说你直接写“p”这种形式就想得到指针变量p指向的那个值?太天真了。“p”这种形式得到的是那个值得地址,不是那个值本身的数据。那咋办,跟定义指针一样,给指针变量p前面也加个修饰词呗,以此来表示得到指针变量p指向的那个值,而不是指针变量p自己的值。再一次的很不幸,这个修饰词又是星号*!我说C语言发明的人啊,就不能换一个其他的符号吗?你说定义指针的时候使用星号*,这次使用指针的时候又使用星号*,会很容易把人搞晕的哟!
我在“C语言编程技术分享”,这个公众号里写了一些C语言基础文章,欢迎阅读参考!
到此,以上就是小编对于在C语言李p的问题就介绍到这了,希望介绍关于在C语言李p的3点解答对大家有用。