zoukankan      html  css  js  c++  java
  • 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”};
  • 相关阅读:
    vue 监听变量或对象
    同行span标签设置display:inline-block;overflow:hidden垂直对齐问题
    vue style 的scoped 使用
    判断两个对象是否相等
    js call 和 apply方法记录
    接口联调遇到的坑 总结
    onclick或者其他事件在部分移动端无效的问题
    js 迭代方法
    原生js实现类的添加和删除,以及对数据的add和update、view ,ajax请求 ,页面离开的操作,获取url中参数等方法
    input 的radio checkbox 和 select 相关操作
  • 原文地址:https://www.cnblogs.com/cxbblog/p/3704917.html
Copyright © 2011-2022 走看看