C primer Plus_part7

Posted 刘传武

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C primer Plus_part7相关的知识,希望对你有一定的参考价值。

第十章  数组和指针

 

1.const :保护变量不受改变,特别是在作为入参传入函数

             对于变量:const 不能修改值

             对于指针: const 可以修改值,但是不能修改指向对象

    

#include<stdio.h>

int main()
{
  int arrays [10] = {0};
  const int *p  = arrays;
  int i =0 ;
  *(p+3) = 4;//error 不能通过编译 const 并不智能

  for(;i < 10;i ++)
  {
    printf(" %d \n",arrays[i]);


  }
}

#include<stdio.h>

int main()
{
  int arrays [10] = {0};
  const int *p  = arrays;
  int i =0 ;
 // *(p+3) = 4;//error 不能通过编译 const 并不智能
  *(arrays+3) = 4;
  for(;i < 10;i ++)
  {
    printf(" %d \n",*(p+i));

  }
}

 

 

关于结构体的大小计算

   

#include<stdio.h>

typedef struct A_s
{
   int a[10];


}A;

 typedef struct data_s
{
      int a ;
        double dou;
        char b[4];
        //char ch;
        A  d;
       // int e;
        char c;
}data;

int main()
{
   data data_1={0};
       printf("%d  %d\n",sizeof(data) ,sizeof(data_1.d));
}
~  

 

多次尝试后对于补位理解补齐一个最大的基本类型大小最大补为8。

 

#include<stdio.h>

typedef struct A_s
{
   int a[10];


}A;

 typedef struct data_s
{
      short a ;
       // double dou;
        //char b[4];
        //char ch;
       // A  d;
       // int e;
        char c;
}data;

int main()
{
   data data_1={0};
       printf("%d  %d\n",sizeof(data) ,sizeof(A));
}

像这个补齐为4.

以上是关于C primer Plus_part7的主要内容,如果未能解决你的问题,请参考以下文章

C Primer plus 第一章复习题及其编程题

c primer代码所遇到的问题合集

c primer plus 章一

c primer plus 编程练习答案第四章

C++ Primer 0x07 练习题解

C语言-学习笔记 --《c primer plus》