c语言指针知识点总结,c语言指针类型

  c语言指针知识点总结,c语言指针类型

  指针的本质:

  #包含stdio.h

  //Symbol-get address,也叫reference,通过它我们可以得到一个变量的地址值。

  //指针变量的初始化必须是变量取地址。

  //值运算符是*,也叫解引用,通过它我们可以得到一个地址对应的数据。

  int main()

  {

  /* int I=5;

  int* i_pointer=*/

  int I=5;

  int * p=I;

  printf(i=%d\n ,I);//直接访问

  printf(*p=%d\n ,* p);//间接访问

  返回0;

  //定义多个指针变量

  //int* a,b,c;错误演示

  int* a,* b,* c;

  }

  编程思维练习:

  一,

  #define _CRT_SECURE_NO_WARNINGS

  #包含stdio.h

  //使用while或for循环计算n!的价值

  int main()

  {

  /* int n;

  scanf(%d ,

  int i=1,total=1;

  while (i=n) {

  total=total * I;

  我;

  }

  printf(%d!=%d\n ,n,total);

  返回0;*/

  int n;

  scanf(%d ,n);

  int i,total

  for (i=1,total=1;I=n;i ) {

  total=total * I;

  }

  printf(%d ,总计);

  返回0;

  }第二,

  #define _CRT_SECURE_NO_WARNINGS

  #包含stdio.h

  //有人想把一张100元人民币换成10元、5元、2元和1元的纸币。

  //要求正好换40张票,每种票至少一张。有多少种方式?

  //枚举方法(穷举方法)

  int main()

  {

  //A、B、C、D分别代表10元、5元、2元、1元的数字。

  int a,b,c,d,e=0;

  for(a=1;a=9;答

  {

  for(b=1;b=19b)

  {

  for(c=1;c=37c)

  {

  for(d=1;d=37d ) {

  如果(a * 10 b * 5 c * 2 d==100 a b c d==40)

  {

  e;//e表示改变方法的方式有多少种。

  }

  }

  }

  }

  }

  printf(%d\n ,e);

  返回0;

  }三,

  #define _CRT_SECURE_NO_WARNINGS

  #包含stdio.h

  //输入数字n (n小于等于100),输出数字2出现的次数;

  //输入格式是两行

  //输入第一行要输入的元素个数,例如:5

  //在第二行输入1 2 3 2 1 2,那么输出结果是3,因为2出现了3次。

  int main()

  {

  int n;

  scanf(%d ,n);

  int arr[100];

  int I=0;

  for(I=0;I n;我)

  {

  scanf(%d ,arr[I]);

  }

  //统计2的出现次数

  int count=0;

  for(I=0;I n;我)

  {

  if (arr[i]==2)

  {

  数数;

  }

  }

  printf( 2=% d \ n 的出现次数,计数);

  返回0;

  }四,

  #define _CRT_SECURE_NO_WARNINGS

  #包含stdio.h

  #包含字符串. h

  /*

  读取一个可能包含空格的字符串,并反转该字符串,原

  当字符串与反转后的字符串相同时,输出0,原字符串小于反转后的字符串输出-1,

  大于反向串1的输出。例如,输入hello,反过来的字符串是olleh,

  因为hello小于olleh,所以输出为-1

  */

  int main()

  {

  char c[100],d[100];

  gets(c);

  int i,j;

  //字符串翻转

  对于(i=strlen(c) - 1,j=0;I=0;i -,j)

  {

  d[j]=c[I];

  }

  d[j]= \ 0 ;

  卖出(d);

  int result=strcmp(c,d);

  如果(结果0)

  {

  printf(%d\n ,1);

  }

  else if(结果0)

  {

  printf(%d\n ,-1);

  }

  否则{

  printf(%d\n ,0);

  }

  返回0;

  }

  指针的传递:

  #包含stdio.h

  //指针的使用场景之一——指针传递

  无效更改(int *j)

  {

  * j=5;//间接访问指针

  }

  int main()

  {

  int i=10

  printf(更改前i=%d\n ,I);

  变革(一);

  printf(更改后i=%d\n ,I);

  /*函数调用是值传递*/

  返回0;

  }

  指针的偏移量:

  #包含stdio.h

  //指针-指针偏移量的使用场景之一

  /*

  数组比较特殊,不能和整型变量、浮点型变量、字符型变量相比较。

  数组名A是一个数组,A存储一个值,这个值是数组的地址值和起始地址。

  */

  int main()

  {

  int a[5]={ 1,2,3,4,5 };

  /*

  int * p=0xcccccccc

  如果上面定义了指针类型变量,它将被生成

  引发了异常:读取访问冲突。

  P0xCCCCCCCC。

  发生上述异常是因为相应的内存位置不可读。

  内存分为三种权限:可读、可写、可执行。

  可读可写。

  */

  int * p;

  p=a;

  //取一个指针变量的值,得到的类型是它的基类型,所以下面的值用%d。

  printf(*p=%d\n ,* p);

  for(int I=0;i5;我)

  {

  printf(%d\n ,*(p I));

  }

  返回0;

  }数组比较特殊,不能和整型变量、浮点型变量、字符型变量相比较。

  数组名A是一个数组,A存储一个值,这个值是数组的地址值和起始地址。

  请指正,谢谢!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: