zoukankan      html  css  js  c++  java
  • 关于静态存储区的理解(自己还处于懵懂的状态呢)

    指针对于数组和字符串来说 是其内存的首地址。

    • 首先发现字符型和整形的有点不一样呢
      #define  _CRT_SECURE_NO_WARNINGS 
      #include <stdlib.h>
      #include <string.h>
      #include <stdio.h>
      #define DER 100
      
      char * getStr1()
      {
      	char *p1 = "abcdefg2";
      	return p1;
      }
      char *getStr2()
      {
      	char *p2 = "abcdefg2";
      	return p2;
      }
      
      void main()
      {
      	char *p1 = NULL;
      	char *p2 = NULL;
      	int *b1;
      	 int *b2; 
      	 int a=100;
      	 b1=&a;
            b2=&a;
      	p1 = getStr1();
      	p2 = getStr2();
      	
      	
      	//打印p1 p2 所指向内存空间的数据
      	printf("p1:%s , p2:%s 
      ", p1, p2);//直接显示的是指针内部的值
      
      	//打印p1 p2 的值
      	printf("p1:%d , p2:%d 
      ", p1, p2);//这里显示的是两个指针指向值地址
      
      
      	printf("b1:%d ,b2:%d 
      ", b1, b2);//这里显示的是指针指向值的地址 
      	printf("b1:%d ,b2:%d 
      ", &b1, &b2);//整个数据的地址,如100,12个字节
      	printf("b1:%d ,b2:%d 
      ", *b1, *b2);//指针内存放的值
      	printf("b1:%s ,b2:%s 
      ", b1, b2);//两个指针所代表的ascii表中的值
      	printf("hello...
      ");
      	system("pause");
      	return ;
      }
      

        结果为

    #include "stdlib.h"
    #include "stdio.h"
    #include "string.h"
    
    // 数据类型的用途
    //数据类型的本质:固定大小内存块的别名
    // b &b 数组数据类型 (定义一个1 数组类型 2数组指针  3 数组类型和数组指针类型的关系) ====>压死初学者的三座大山  抛砖
    //
    
    void main31()
    {
    	int a; //告诉c编译器分配4个字节的内存
    	int b[10] ; //告诉c编译器分配40个自己内存
    
    	printf("b:%d, b+1:%d, &b:%d, &b+1:%d 
    ", b, b+1, &b, &b+1);
    
    	printf("sizeof(b):%d 
    ", sizeof(b));  //40
    	printf("sizeof(a):%d 
     ", sizeof(a)); //4
    	 
    	// b+1  &b+1 结果不一样  //b &b所代表的数据类型不一样
    	//b 代表的数组首元素的地址
    	//&b代表的是整个数组的地址  
    
    	//
    	printf("hello....
    ");
    	system("pause");
    }
    
    struct Teacher
    {
    	char name[64];
    	int age;
    }Teacher;
    
    
    typedef struct Teacher2
    {
    	char name[64];
    	int age;
    }Teacher2;
    //数据别名 typedef
    
    typedef int u32;
    
    
    void main33()
    {
    	int a; //告诉c编译器分配4个字节的内存
    	int b[10] ; //告诉c编译器分配40个自己内存
    
    	struct Teacher t1;
    
    	Teacher2 t2;
    	t1.age = 31;
    
    	printf("u32:%d 
    ", sizeof(u32));
    
    	{
    		char *p2 = NULL;
    		void *p1 = NULL;
    		p2 = (char *)malloc(100);
    
    		p1 = &p2;
    	}
    	{
    		//void a;//编译器不知道如何分配内存
    	}
    
    	printf("hello....
    ");
    	system("pause");
    }
    

      

  • 相关阅读:
    I/O模型浅析
    (转)Linux中的文件描述符
    深入理解jQuery中的Deferred
    Windows安装docker (带安装包)
    windows 安装docker报错:Error checking TLS connection: ssh command error: command : ip addr show
    什么是负载均衡
    python把列表前几个元素提取到新列表
    Uncaught DOMException: Failed to construct 'WebSocket': The URL
    json中的json.dumps()
    将代码上传版本库gitee
  • 原文地址:https://www.cnblogs.com/xiaochige/p/6637085.html
Copyright © 2011-2022 走看看