C 笔记

1.linux 下的C 代码的主函数都是  int main(int argc char *argv[]) ,其表示的意义和用法是什么?

argc是命令行总的参数个数
argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数命令行后面跟的用户输入的参数,

 1 #include <iostream>
 2 #include <cstdio>
 3 using namespace std;
 4 
 5 int main(int argc, char* argv[])
 6 {
 7     int i;
 8     for (i=0;i<argc;i++)
 9         cout<<"Argv [ " << i << " ] " << " is " << argv[i]<<endl;//输入数组到argv[i]中
10     system("pause");
11     return   0;
12 }

2.const int a ; 和  int  const  a ;的区别

定义一个变量:

       类型描述符 + 变量名

类型描述符包括类型修饰符数据类型

类型修饰符有:short  long  unsigned  signed  static  auto  extern  register  

数据类型有:int  char  float

(1)类型描述符中如果有多个关键字,他们出现的位置不影响他对变量的限制。

         static  int  short  i;和 int  static  short  i;完全一样

         const  int  a 和  int const a 完全一样。

3.const int *a ; 和  int  *const  a ;int  const*  const a 的区别

       int  *a[] //因为[]的优先级高于*,因此是一个数组,每个成员类型为指针,指向int

       int  (*a)[10]//一个指针,指向类型为一个数组

  指针的判断从右向左

       const  int*a//a是变量名,*表示他是一个指针(类型已经确定,指针类型),余下的是指向的数据的类型。

                             //因此,a是一个指向const int的指针,即指向的数据不可修改。(a是一个指针,指向的数据类型为const int

                             //a可修改即a可以指向其他变量,但是a当前所指向的数据不能被修改。

 

       int  *const a;//*const 一起来修饰a,即const修饰 a为只读,*表示a是一个指针,因此这是一个只读的指针指针指向的数据类型为int类型

                            //a不可修改即a只能指向当前所指向的变量,但是指向的变量本身的值是可以修改的。

 

       int const * const a;//*表示指针,因此指针不可修改,int const 是指针指向的类型,仍然是const。

                                      //  a只能指向该变量,切该变量的值也不可修改或变化。

4.计算机存储的数据,16进制形式到float 形式表示的转换方法

1 unsigned int hex ;
2 float fnum ;
3 hex = *(unsigned int*)&fnum ;//float to hex 
4 
5 unsigned int hex_dat ;
6 float f_dat ;
7 f_dat = *(float*)&hex_dat ;

 

posted on 2018-03-25 22:21  hematologist  阅读(188)  评论(0编辑  收藏  举报

导航