指针变量和指针所指向的内存空间是两个不同的概念
char*p = "123456";//p是一个指针变量存放在临时栈区,"123456"是一个字符串常量存放在常量区,变量p保存的是字符串的地址
char*str = (char*)malloc(100);//将分配的100字节的堆区的内存空间的地址赋值给指针变量p
strcpy(str,"123456");//将字符串拷贝到堆区
1)指针也是一种变量,占有内存空间,用来保存内存地址
2)*p操作内存
在指针声明时,*号表示所声明的变量为指针
在指针使用时,*号表示 操作 指针所指向的内存空间中的值
*p相当于通过地址(p变量的值)找到一块内存;然后操作内存
*p放在等号的左边赋值(给内存赋值)
*p放在等号的右边取值(从内存获取值)
3)指针变量和它指向的内存块是两个不同的概念
含义1 给p赋值p=0x1111; 只会改变指针变量值,不会改变所指的内容;p = p +1; //p++
含义2 给*p赋值*p=’a’; 不会改变指针变量的值,只会改变所指的内存块的值
含义3 =左边*p 表示 给内存赋值, =右边*p 表示取