int *p;这个就死记硬背吧,指针定义时前面的星号就是告诉编译器变量p就是个指针,除此之外没有别的...
这三个表达式,第一个表示p是一个指针,p本身平凡无比,但是p所指向的对象是一个特殊的对象--整型常量;第二个表示:这个p指针不是一个普 通的指针,它是个常量指针,即只能对其初始化,而不能赋值,另外,这个指针所指向的对象是一平凡的int型变量;第三个则结合了前两者:指针和指向的对象 都非同寻常,都是常量。 ...
意思就是1与指针指向的值相乘。此时怎么区分?就是最贴近指针变量p的那个星号是用于指针的,也就是指针定义时使用。如果C语言能重新发明一次,也许发明者会用个#、$或者其他的什么字符来代替*吧,因为表示指针的*和乘法的*确实容易混淆。
然后指针是可以有减法的,反映的是两块内存之间相隔的单元数,就像是房间号码相减就表示房间之间间隔的房间数一样。但是指针是并没有加法的,像是房间号码相加并不能反映任何有意义的数据一样,没有乘法和除法也是一样的道理。最后指针是可以有关系运算的,反映的是两地址之间在内存中的位置分配情况。这种关系运算在...
算术运算符和算术表达式 一、基本的算术运算符 (1)+(加法运算符或正值运算符,如2+5)。 (2)-(减法运算符或负值运算符,如4-2)。 (3)*(乘法运算符,如3*8)。 (4)/(除法运算符,如11/5)。 /的运算分为两种情况: a、“除”的左右两边都为整数时,所得结果必然是整数(注意:仅取整数部分,不是四舍五...
非法的指针运算 有一些无法对指针执行的操作。由于指针存储地址,因此我们必须忽略可能导致非法地址的操作,例如加法和乘法。以下是此类操作的列表。 地址+ 地址 = 非法 地址* 地址 = 非法 地址% 地址 = 非法 地址/ 地址 = 非法 地址& 地址 = 非法 地址^ 地址 = ...
3.乘法运算符“*”双目运算,具有左结合性。 4.除法运算符“/”双目运算具有左结合性。参与运算量均为整型时, 结果也为整型,舍去小数。如果运算量中有一个是实型,则结果为双精度实型。 void main(){ printf(" %d,%d ",20/7,-20/7); printf("%f,%f ",20.0/7,-20.0/7); ...
(1) 乘法:3*4=12:这种情况是作为算术运算符出现 (2) int *p=&a; //定义指针变量:此时为初始化指针变量,int *p定义了一个指向int类型指针p(我们使用*符号把p声明为指针),并初始化p使其指向int类型的变量a,这里&num中的&是取地址操作符,当&作用于一个对象上时,它返回了该对象的地址, (3) *p //解...
下标不会比指针有效率,一定情况下指针比下标有效率。 int array[10], a; for(a = 0; a< 10; a++){ array[a] = 0; } //每次都需要将index乘以sizeof(int) int array[10]; int *array_point = array; for(;array_point < array + 10; array_point++){ *array_point = 0; } //乘法操作...