学习C语言第二天

1 基本的输入和输出printf()

  printf("字符串");
  printf("输出控制符",输出参数);
  printf("输出控制符1 输出控制符2 。。。",输出参数1, 输出参数2,);其一一对应
  printf("输出控制符 非输出控制符",输出参数);
  输出控制符包括
  %d   int
  %ld  long int
  %c   char
  %f   float
  %lf  double
  %x(#x)(#X)   int (long int)(short int)
  %o   int (long int)(short int)
  %s   字符串

如 :

   int x1 = 47;
  printf("%x\n",x1);//2f
  printf("%X\n",x1);//2F
  printf("%#x\n",x1);//0x2f
  printf("%#X\n",x1);//0X2F

2 scanf("输入控制符",输入参数);

  int x2 ;
  scanf("%d",&x2);//& 取地址符  &x2 表示x2的地址
  printf("x2 = %d\n",x2);

  多变量赋值
  scanf("%d %d",&i,&j);

多维数组:
是否存在多维数组:不存在
因为内存是线性一维的,在内存中是不分行不分列的。
N维数组可以当做每个元素是n-1维数组的 一维数组。


如果想把函数写在程序的后面,那么需要写函数声明:

扫描二维码关注公众号,回复: 10745838 查看本文章

  void f(void);
  int main(void)
  {
   f();
  }

在一个函数内部,如果定义的局部函数的名字和全局变量名一样时,局部变量会屏蔽掉全局变量

进制互相转换  如


指针(☆☆☆☆☆)

   内存的存储是以一个字节为一个编号,也就是8位合在一起给一个编号,不是0,1就给编号。

   内存分为很多个单元,每个单元就会分配一个编号。

  地址:内存单元的一个编号。而指针和地址一个概念的。也就是说指针就是地址

  int *p;//  p是变量名   int * 表示p变量存放的是int类型变量的地址
    int i = 3 ;
    p = &i;
    //p = i;// error 类型不一致  p 只能存放int类型变量的地址 不能存放int类型变量的值

 对 int * p的理解(☆☆☆☆☆)     int * 类型 实质是存放int变量地址的类型

① p保存了 i的地址 p指向i
② p不是i,i也不是p 修改p的值不影响i 修改的i的值也不影响p
 ③ 如果一个指针变量指向了某个普通变量 则
     * 指针变量 完全等同于 普通变量

*p代表的是p所指向的那个变量(表示以p的内容为地址的变量。)

上述例子中  p的内容是一个地址  *p其指向的变量当然就是i变量了

 指针就是地址,地址就是指针  地址就是内存单元的编号

指针变量:存放地址的变量
  而指针只是一个值,这个值是内存单元的一个编号。指针变量才是一个变量,他里面才可以存放数据。

  指针不能进行算术运算-相加 乘 除。但是能相减。

如果两个指针变量指向的是同一块连续空间的不同存 储单元,则这两个指针变量才可以相减。

经典的值互换例子

  #include<stdio.h>
void exchange1(int a,int b);
void exchange2(int *,int *);
void exchange3(int *,int *);

int main(void)
{

int a = 3;
int b = 5;

exchange3(&a,&b);
 printf("a = %d, b = %d\n",a,b);

    return 0;
}

void exchange1(int a,int b)
{

    int t;
    t = a;
    a = b;
    b = t;
    return;
}

void exchange2(int *p,int *q)
{

    int *t;//如果要互换p q的值 则t 须是 int *(不能是int) 只是互换了地址
    t = p;
    p = q;
    q = t;
}

void exchange3(int *p,int *q)
{

    int t;//互换值 须定义为int
    t = *p;
    *p = *q;
    *q = t;

}

如何通过被调函数修改主调函数普通变量的值(☆☆☆☆☆)见exchange3(&a,&b);
    A) 实参必须为该普通变量的地址
    B) 形参必须为指针变量
    C) 在被调函数中通过 *形参名 = ...的方式来修改

发布了3 篇原创文章 · 获赞 4 · 访问量 2063

猜你喜欢

转载自blog.csdn.net/liuguangjian2007/article/details/49299725