第6章指针与字符串 H 说明 ①*pl、*p2表示指针变量p1、p2所指变量的值,pl 表示pl中存放的地址,p2表示p2中存放的地址,具体 的地址值与程序的运行环境有关。 ②*pl+-3;表示将pl所指内存单元的内容(即m的值6) 加3后,再存入p1所指内存单元。 ③p2=pl;表示将pl的内容(即m的地址)赋给p2,使 p2也指向m
第6章 指针与字符串 说明: ①*p1、 *p2表示指针变量p1、p2所指变量的值,p1 表示pl中存放的地址,p2表示p2中存放的地址,具体 的地址值与程序的运行环境有关。 ②*pl+=3;表示将p1所指内存单元的内容(即m的值6) 加3后,再存入p1所指内存单元。 ③p2=p1;表示将p1的内容(即m的地址)赋给p2,使 p2也指向m
第6章指针与字符串 H ④*p2*=4表示将p2所指内存单元的内容乘以4后存 入p2所指内存单元。其中最左边的“*”代表指向操作 即代表p2所指的变量),中间的“*〃为复合赋值运算 符(其中的“*”代表乘法)。 ⑤如果没有给指针变量 phint赋初值NULL,编译时 将会出现一警告错误 ⑥程序的第6行执行完毕后的情况见图6-2(a),第 14行执行完毕后的情况见图6-2(b)
第6章 指针与字符串 ④*p2*=4;表示将p2所指内存单元的内容乘以4后存 入p2所指内存单元。其中最左边的“*”代表指向操作 (即代表p2所指的变量),中间的“*=”为复合赋值运算 符(其中的“*”代表乘法)。 ⑤如果没有给指针变量phint赋初值NULL,编译时 将会出现一警告错误。 ⑥程序的第6行执行完毕后的情况见图6-2(a),第 14行执行完毕后的情况见图6-2(b)
第6章指针与字符串 H n n 36 6 *p hin 图6-2指针变量的使用
第6章 指针与字符串
第6章指针与字符串 H 6.24指针的运算 对指针也可以进行赋值、算术和关系运算。同普 通的表达式不同,指针的运算有它特有的规则,其中 有些运算有特殊的意义,必须同普通的表达式分清 指针的赋值运算 前面已经接触了对指针型变量赋值的简单情况 这里将详细讨论指针赋值的问题 对指针型变量进行赋值必须遵循变量赋值的规则, 也就是说,只有与变量类型相同的值才能安全地赋予 变量。这种规则在指针赋值时更为严格
第6章 指针与字符串 6.2.4指针的运算 对指针也可以进行赋值、算术和关系运算。同普 通的表达式不同,指针的运算有它特有的规则,其中 有些运算有特殊的意义,必须同普通的表达式分清。 1.指针的赋值运算 前面已经接触了对指针型变量赋值的简单情况, 这里将详细讨论指针赋值的问题。 对指针型变量进行赋值必须遵循变量赋值的规则, 也就是说,只有与变量类型相同的值才能安全地赋予 变量。这种规则在指针赋值时更为严格
第6章指针与字符串 H 对于普通变量的赋值运算,即使变量类型与值的 类型不同,赋值运算也是允许的,只不过这种赋值会 遵循某些转换规则进行。而指针型变量在赋值时,决 不允许将与指针型变量类型不同的指针值赋予指针变 量。例如: intn value charby Ch=A nⅤaue=bvCh
第6章 指针与字符串 对于普通变量的赋值运算,即使变量类型与值的 类型不同,赋值运算也是允许的,只不过这种赋值会 遵循某些转换规则进行。而指针型变量在赋值时,决 不允许将与指针型变量类型不同的指针值赋予指针变 量。例如: intnValue; charbyCh='A'; nValue=byCh;