黑马程序员技术交流社区

标题: 指针和函数 [打印本页]

作者: 花——九    时间: 2015-10-19 23:22
标题: 指针和函数


/*
一,什么是指针型函数?
是函数. 这个函数的返回值类型是指针;
定义:类型 * 函数名(参数){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;
   
}







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2