c语言指针进阶
- 字符指针
(1)字符指针是用来字符变量的地址
(2)字符指针的使用:
第一种
char ch = ‘o’;
char* p = &ch;
第二种:
char* p = “ahsdj”;
补充:字符串常量是无数名的字符数组,是一个特殊的字符数组。
将一个字符串常量赋个一个字符指针,是将字符串常量的首元素地址赋个字符指针。常量不储存在栈区
这里有个面试题:
这里str3和str4指向的是一个同一个常量字符串。C/C++会把常量字符串存储到单独的一个内存区域,当
几个指针。指向同一个字符串的时候,他们实际会指向同一块内存。但是用相同的常量字符串去初始化
不同的数组的时候就会开辟出不同的内存块。所以str1和str2不同,str3和str4不同。
- 指针数组
(1) 指针数组:用来从存放指针的,即每一个元素都是一个指针
- 数组指针
(1) 数组指针是一个指针
(2) 数组指针是一个指向数组的指针
(3)首先先理解数组类型、数组名和&数组名的含义
1…数组类型
我们在创建数组类型的时候,都是 元素类型+数组名+[长度],
数组类型就是在创建数组的时候将数组名去掉的剩余部分
例如: