博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言指针(一)
阅读量:6633 次
发布时间:2019-06-25

本文共 1166 字,大约阅读时间需要 3 分钟。

一、指针

定义指针变量

   指针指向的数据类型 *指针变量名称;

   例: int *p;

 *作用:

     1、在定义变量的时候 * 是一个类型说明符,说明定义的这个变量是一个指针变量

     2、在不是定义变量的时候 *是一个操作符,访问指针所指向存储空间

   &作用:

     &作为单目操作符,放在变量的前面,是取出变量的地址

    * 与 & 他们是一对反操作

指针初始化

int age = 10;

int *p = &age;//定义指针同时初始化

三、指针与字符串

1、使用字符数组来保存的字符串是保存栈里的,保存栈里面东西是可读可写,所有我们可以改变里面的字符

     当把一个字符串常量赋值一个字符数组的时候,那么它会把字符串常量中的没有字符都放到字符数组里面

  2、使用字符指针来保存字符串,它保存的是字符串常量地址,常量区是只读的,所以我们不可以修改字符串中的字符

1、多个指针变量可以指向同一个地址

  2、指针的指向是可以改变的

  注意点:

    1、指针没有初始化里面是一个垃圾值,这时候我们这是一个野指针,

       如果操作一个野指针

         1、可能会导致程序崩溃

         2、访问你不该访问数据

       所以指针必须初始化才可以访问其所指向存储区域

    2、指针变量不可以直接赋值一个整形常量,

       因为我们不知道这个整形常量是内存那块地址

二、指针与数组

数组不是一个指针

    数组像一个指针,我们可以通过访问指针所指向的存储空间的方式去访问数组中元素

    使用数组名与使用指向数组的指针都可以访问数组中的元素

    char nums[] = {1,2,3,4,5};// 定义一个数组

    printf("nums = %p\n",nums);// 输出数组的地址

    printf("%d\n",nums[1]);

    char *p  = nums;// 把数组的地址给变量p,数组名就是数组的地址

    printf("%d\n",*p);

   // 多种输出方式

    printf("nums[4] = %d\n",nums[4]);

    printf("nums[4] = %d\n",*(nums+4));

    printf("nums[4] = %d\n",p[4]);

    printf("nums[4] = %d\n",*(p + 4));

    printf("nums[4] = %d\n",4[p]);

三、指针与字符串

1、使用字符数组来保存的字符串是保存栈里的,保存栈里面东西是可读可写,所有我们可以改变里面的字符

     当把一个字符串常量赋值一个字符数组的时候,那么它会把字符串常量中的每个字符都放到字符数组里面

  2、使用字符指针来保存字符串,它保存的是字符串常量地址,常量区是只读的,所以我们不可以修改字符串中的字符

 

转载于:https://www.cnblogs.com/1023843587qq/p/4714903.html

你可能感兴趣的文章
java泛型概述
查看>>
winform程序_根据输入的sql生成excel(字段名与sql一致)
查看>>
Intel瞄准2000亿美元商机,以“数据为中心”结合云、边缘和人工智能
查看>>
实用 | 分享一个决策树可视化工具
查看>>
Ghost 2.16.3 发布,基于 Markdown 的在线写作平台
查看>>
Java开发规范(MySQL开发规范)-《阿里巴巴Java开发手册》
查看>>
Kali Linux Web 渗透测试秘籍 第九章 客户端攻击和社会工程
查看>>
极客DIY:廉价电视棒玩转GNSS-SDR,实现GPS实时定位
查看>>
sqlalchemy 简单使用
查看>>
How to automatically enroll user and computer certificate in AD
查看>>
puppet 手册之puppet rsync 模块应用完整版
查看>>
Oracle用户、权限、角色管理
查看>>
阿里云流计算中维表join VS 流join
查看>>
Java进程CPU使用率高排查
查看>>
Lesson 8 - Exchange 2010 Active Sync
查看>>
如何搭建 Nginx 网站服务器
查看>>
Oracle 数据库优化的R方法(Method R)
查看>>
CentOS 6.8 SSH远程登录优化
查看>>
一条命令完成Linux下批量杀死某应用程序相关的进程
查看>>
菜鸟学Linux 第061篇笔记 postfix配置,pop3
查看>>