十天学会C语言

第09天C语言(05):指针变量作用

2017-07-12  本文已影响11人  liyuhong
二、代码
#include <stdio.h>
void change();
void change2(char *p);
void change3(int nums[]);
void change4(int *p);
char *demo();
char *demo2();
int main()
{
    /*
     只要是 数据类型就具备3个特点
     1.可以用来 定义变量
     2.可以用来作为形参 和 实参
     3.作为返回值
     */
    
    /*
    int num = 10;
    change(num);
    printf("num = %i\n",num);
    
//    char *name = "lyh"; // 常量不能修改
//    change2(name);
    
    int nums[] = {1,3,5};
//    change3(nums); // 数组名 就是数组的地址
    change4(nums); // 数组名 就是数组第0个元素的地址
    printf("nums[0] = %i\n",nums[0]);
     */
    
    
    char *name = demo();
    printf("name = %s\n",name);
    
    char *name2 = demo2();
    printf("name2 = %s\n",name2);
    return 0;
}
char *demo2()
{
    char name[] = "lyh";
    return name;
    // 该区释放之后,那么数组里面的内容就不存在了 所以在外面输出不了
}
char *demo()
{
    char *name = "lyh";
    return name;
    // 指针保存的数据 存在常量区,常量区 不会自动释放.所以外面能获取到值
}

void change4(int *p)
// int *p = nums; == int *p = &nums; == int *p =&nums[0]
// int *p; p = nums; p == nums;
{
    p[0] = 333;
}

// 不专业
void change3(int values[])
{
    values[0] = 111;
    
}
/*
void change2(char *p)
{
    *p = "lys";
}
 */

void change(int value)
{
    value = 55;
}
上一篇下一篇

猜你喜欢

热点阅读