zoukankan      html  css  js  c++  java
  • 《C程序设计》指针部分学习记录-易混点

    1 优先级

    1 int a[10], *p = a;
    2 *p++;//先实现*p运算,再使p自增1
    3 *(p++);//先实现*p运算,再使p自增1
    4 *(++p);//先实现自增1,再

    2 数组名是常量,不能对其进行赋值

    1 int a[4] = {1,2,3,4};
    2 int b = 0;
    3 b = *(a++);//非法,数组名a代表数组首元素地址,是一个指针型常量
    4 b = *(a + 1);//合法

    3 指向多维数组元素的指针变量

    1 int (*p)[4];//此时p只能指向一个包含4个元素的一维数组
    2 score[3][4] = {{65,67,70,60},{80,87,90,81},{90,99,100,98}};
    3 p = score;//合法
    4 
    5 
    6 int (*p)[4];//此时p只能指向一个包含4个元素的一维数组
    7 score[4] = {65,67,70,60};
    8 p = score;//非法
    9 p = &score;//合法

    4 指针数组

    1 int *num[5];//这个数组存放的都是int型地址
    2 
    3 int main(int argc, char *argv[])//指针数组作为main函数的形参
    4 {
    5 }
    6 //数组中每一个元素(其值为指针)指向命令行中的一个字符串

    5 堆区与栈区

    全局变量和局部变量都存放在栈区

    用malloc开辟的空间都在堆区

    疑问:堆区也是先进后出吗?

    6 void指针类型

    1 void *malloc(unsigned int size);//void * 表示无类型指针
    2 void *p3;//p3为无类型指针变量(基类型为void型)
    3 
    4 int a = 3;
    5 void *p3;
    6 p3 = &a;
    7 printf("%d",*p3);//错误,p3是无指向的,不能指向a
    8 //p3 = &a;  赋值后p3得到a的纯地址,但并不指向a,不能通过*p3输出a的值

    参考

    C语言设计(第四版)   谭浩强

  • 相关阅读:
    markdown syntax
    solidity_mapping_implementation
    paramiko 模块安装和使用
    检测服务运行的脚本
    系统非正常关机启动后出现:an error occurred during the file system
    bacula 备份恢复
    socket 网络编程
    Python 8 协程/异步IO
    Linux系统通过console口连接交换机
    Python 7 多线程及进程
  • 原文地址:https://www.cnblogs.com/QQ2962269558/p/13279332.html
Copyright © 2011-2022 走看看