1、打印二进制机器码,程序内存分析,大端序小端序,指针数组,数组指针,数组的三种访问方式,typedef,#if-0-#endif,求数组大小,括号表达式

简介:  1.打印二进制机器码(分别表示32位的和64位的) #include <stdio.h>   /*按照8位的长度打印一个数值*/ void dis8bit(char val) {    int bit = 8;    while(bit--)     {        if(1<<bit&v


1.打印二进制机器码(分别表示32位的和64位的)

#include <stdio.h>

 

/*按照8位的长度打印一个数值*/

void dis8bit(char val)

{

   int bit = 8;

   while(bit--)

    {

       if(1<<bit&val){

           printf("1");

       } else {

           printf("0");

       }

       if(!(bit%4))

           printf(" ");

    }

   putchar(10);

}

 

/*按照32位长度打印数值的机器码*/

void dis32bit(int val){

   int bit = 32;

   while(bit--){

       if(1<<bit&val){

           printf("1");

       } else {

           printf("0");

       }

       if(!(bit % 4))

           printf(" ");

    }

   putchar(10);

}

 

int main(void)

{

   int a = -1,b = -128,c = 127,d = 0;

   dis8bit(a);

   dis8bit(b);

   dis8bit(c);

   dis8bit(d);

 

   int e = 127;

dis32bit(e);

 

   return 0;

}

2.关于程序内存。

Bss区的生命周期是从程序的开始到程序的结束。

 

3.关于数据在内存中的存储

int a;全局变量,并且未初始化,所在在数据段的bss区。被初始化为0

static int b; 静态全局变量,数据段的bss段,在bss区。

int c[10] = {1,2,3,4};  全局的数组在data段,这里的数据在运行的时候会被拷贝来的。

 

4.大端存储和小端存储引起的问题

在内存中的分析如下:

 

5.数据类型   *    指针变量

指针变量,本质同普通变量。

* 指明后面的变量为指针变量

数据类型指明,从该变量存放的地址处的寻址能力。

char *p;  代表了从p这个地址处的寻址能力是1个字节,(因为char *类型的寻址能力为1个字节)。

指针的一个重要概念   步长 =  数据类型的大小

int a[10]等价于==int[10]  a;

 

6.关于typedef关键字

typedef int ARRAY[10];   给数组定义别名

给参数起别名的步骤:

再如:

void (*p)(int,int);的别名为:typedefvoid (*pp)(int,int);这个时候pp就是指针函数的别名。

 

7.数组:

数组访问的方式有:

A:下标法,特例列举:

这里说明,如果想得到一个数组的值也可以通过i[a]è下标[数组名]的方式得到

B:偏移法的方式取数值,举例:

C:指针法

 

*p++ ==*p++

 

8.数组局部初始化

 

9.#if-0-#endif排除某段代码影响

 

10.数组求大小

求作为函数参数传递的数组名的大小:

11.括号表达式

分析:int xx[3][2] = {(1,2),(3,4),(5,6)};实际上等价于:intxx[3][2]={2,4,6};

内存分析:

目录
相关文章
|
24天前
|
存储 C语言 C++
动态内存分配与指向它的指针变量
动态内存分配与指向它的指针变量
20 1
|
1月前
|
C语言
指向结构体数组的指针
指向结构体数组的指针
13 2
|
1月前
|
存储 算法 C语言
通过指针引用数组元素
通过指针引用数组元素
20 0
|
1月前
|
C语言 C++
数组元素的指针
数组元素的指针
10 0
|
1月前
|
存储 C++
使用字符指针变量和字符数组的比较
使用字符指针变量和字符数组的比较
10 0
|
1月前
|
存储 C语言 C++
c语言从入门到实战——数组指针与函数指针
数组指针和函数指针都是指针类型,但是它们指向不同的数据类型。 数组指针:数组指针指向的是数组类型。 函数指针:函数指针指向的是函数类型。 数组指针和函数指针是C语言中的两种重要指针类型。数组指针指向一个数组,可以用来访问和修改数组中的元素;而函数指针则指向一个函数,可以用来调用该函数。两者在语法和用法上有所不同,需要仔细区分。正确理解和使用它们可以提高程序的效率和可维护性。
33 0
|
16天前
|
搜索推荐 C语言 C++
【C指针(五)】6种转移表实现整合longjmp()/setjmp()函数和qsort函数详解分析&&模拟实现3
【C指针(五)】6种转移表实现整合longjmp()/setjmp()函数和qsort函数详解分析&&模拟实现
|
11天前
|
存储 编译器 C语言
深入探索C语言动态内存分配:释放你的程序潜力
深入探索C语言动态内存分配:释放你的程序潜力
26 0
|
24天前
|
算法 Java C++
【C/C++ 内存知识扩展】内存不足的可能性分析
【C/C++ 内存知识扩展】内存不足的可能性分析
12 0
|
24天前
|
存储 程序员 C++
使用字符指针变量和字符数组的比较
使用字符指针变量和字符数组的比较
14 1

热门文章

最新文章