• C语言基础:指针类型与指针和数组、字符串的关系


    //指针变量就是用来存储地址的,只能存储地址
    格式:  int  *p;  这个p为指针变量;指针变量占8个字节
    类型是用来说明这个指针指向的类型; 比如上边的int代表这个指针变量会指向int类型的存储空间;
    int *p = &a;//这样一句可以写,此时的*只是一个标志,表示这个*只是表示p是个指针;
    *p = &a;//这样写就错了;此时*p表示取p指向的空间的值;
     
    指针疑问:指针既然都占据8个字节,那么为什么要划分类型, 是因为当用*p指针取值或者赋值的时候,知道该取几个字节,比如int取4个字节,char只取一个字节;
     
    指针和数组的关系
    把一个数组名当做参数传递的时候,c编译器会把它变成一个指针;对一个指针加1,并不是加1,要看指针的指向的类型,如果是int那么指针就+4个字节
    如果是char类型,那么指针地址就+1个字节;
     
    指针和字符串的关系
    创建字符串的两种方式:
    第一种:char数组创建字符串:
    1—>  char name[] = “itcast”;
    是一个字符串变量,可以通过  name[i] = ‘ ..’;来修改其中某个字符的值,
    这种相当于一个字符串变量,一般存放在栈中,且经常修改值得情况;
    第二种:指针创建字符串:
    2—> char *name2 = “itcast”; //name2指向了字符串的第一个字符,即 i ;
    相当于一个字符串常量,内容不可改变的; 放在常量区中;
    当然一般我们不需要对字符串进行修改,且经常使用的字符串,就用指针来创建字符串;
    %s这个占位符是用来输出字符串的,当用指针输出时,直接写上指针的名字即可;因为这个%s会自动从第一个地址往后找,知道;
     
    创建字符串数组的两种方式
    第一种:二维字符数组:
    char name[2][10] = {“jack” , “rose”};
     
    第二种:指针数组:
    char *name[5] = {“java” , “rose”};
  • 相关阅读:
    【转载】make: Nothing to be done for `all'. 解决方法
    P4行为模型BMV2安装
    P4行为模型BMV2依赖关系安装:thrift nanomsg nnpy安装
    P4factory ReadMe 剩余部分
    P4factory ReadMe Quickstart 安装p4factory
    Git 使用ssh密钥
    c++ 有swap函数
    c++ 引用
    topk两种解法
    xgboost和gbdt区别
  • 原文地址:https://www.cnblogs.com/cxbblog/p/3704917.html
Copyright © 2020-2023  润新知