/*
一,什么是指针型函数?
是函数. 这个函数的返回值类型是指针;
定义:类型 * 函数名(参数){return 指针类型;}
如:int *add(int *a){return &a;}.
表示定义一个返回值是int指针类型的add函数.
*/
int *add(int *p){
return p;
}
/*指针与字符串*/
#include <stdio.h>
int main(){
//创建字符串的三种方式.
//用字符数组创建 变量
char arr[] = "heima";
char arr1[] = "heima";
// char arr1[] = {'h','e','i','m','a','\0'};
//用指针创建 是常量
char *p = "heima";
char *p1 = "heima";
printf("arr=%p---arr1=%p----p=%p----p1=%p\n",arr,arr1,p,p1);
/*
常量区的常量与变量区别
1.常量区的常量只有一份.也就是重用的时候,用的都是同一个,地址一样.
2.而变量同一个字符串,不同的变量地址不同.
3.指针定义一个字符串,指针存的实际是在常量区的那个字符串的首字符的地址.
*/
// 1.指针定义的字符串是常量,不能被改变.而字符数组定义的是变量.可以被改变.
p[0]='a';//错误,常量不能改变.
//arr[0]='a';
printf("arr=%s---p=%s\n",arr,p);
/*
适用场景:
1.数组方式字符串:
用于这个字符串需要被改变的时候,或只需要用一次或用的次数很少.
2.指针方式字符串:
用于这个字符串不需要被改变,并且需要反复使用.
*/
/*
三,怎么表示一个字符串数组?
char arrs[2][8] = {”itcast“, ”heima“};
四.怎么用指针表示一个字符串数组?
char *arrs[2] = {”itcast", ”heima”};
*/
return 0;
}
|
|