C和指针小结(推荐)

C和指针

相关基础知识:内存的分配(谭浩强版)

1、整型变量的地址与浮点型/字符型变量的地址区别?(整型变量/浮点型变量的区别是什么)

2、int *p,指向整型数据的指针变量。

3、通过指针变量访问整型变量。

4、*p :指针变量p指向的存储单元(变量)

5、p = &a——>> *p = *&a

6、用指针作函数参数

7、调用函数中,由于虚实结合是采用单向的“值传递”方式,只能从实参向形参传数据,形参值的改变无法回传给实参。

8、引用一个数组元素可以用(1)下标法(2)指针法(占内存小,运行速度快)

9、指针提高效率在那些方面?(内存,运行时间??)

10、如果指针变量p已指向数组中的一个元素,则p+1指向同一数组中的下一个元素。

11、用指针变量作函数形参接受数组地址。数组指针和指针数组的区别

#include"iostream"
 using namespace std;
 int main()
 {
   void sort(int *p,int n);
   int a[5],i;
   cout<<"input array:"<<endl;
   for(i=0;i<5;i++)
   cin>>a[i];
   cout<<endl;
   sort(a,5);
   cout<<" the sorted array:"<<endl;
   for(i=0;i<5;i++)
   cout<<a[i]<<" ";
   cout<<endl;
   return 0;
 }

 void sort(int *p,int n)
 {
   int i,j,k,temp;
   for(i=0;i<n-1;i++)
   {
     k=i;
     for(j=i+1;j<n;j++)
     if(*(p+j)<*(p+k)) k=j;
     temp=*(p+k);
     *(p+k)=*(p+i);
     *(p+i)=temp;
   }
 }

12、一个int占多少个字节?

13、实参和形参的结合有一下4种形式:

实参 形参
数组名 数组名
数组名 指针变量
指针变量 数组名
指针变量 指针变量

14、实参数组名a代表一个固定的地址,或者说是指针常量,因此其值不可改变;形参数组名是指针变量,可以改变。//  a++ //语法错误,不可改变

15、字符串与指针。字符串数组/字符串变量/字符指针 存放字符串。

//test_3 指针存放字符串
 #include<iostream>
 using namespace std;
// #include<string> //字符串变量
 int main()
 {
   char str1[]="I Love C++",str2[20],*p1,*p2;
   p1=str1;
   p2=str2;
  for(;*p1!='\0';p1++,p2++)
  *p2=*p1;
  *p2='\0';
  p1=str1;
  p2=str2;
  cout<<"str1 is "<<p1<<endl;
  cout<<"str2 is "<<p2<<endl;
  return 0;
 }

16、函数与指针。函数的入口地址就称为函数的指针。

1)、用函数指针调用函数

函数类型 (*变量名)(函数形参表)

#include<iostream>
using namespace std;

 int main()
 {
   int max(int x, int y);
   int (*p)(int,int);
   int a,b,m;
   p=max;
   cin>>a>>b;
   m=p(a,b);

  cout<<"max is "<< m<<endl;
  return 0;
 } 

 int max(int x,int y)
 {
   int z;
   if (x<y)
   z=y;
   else
   z=x;
   return(z);
 }

2)、用指向函数的指针作函数参数。

3)、返回指针值的函数:指针函数。

类型名 *函数名(参数列表);int *a( int x,int y);

17、

1)、指向常量的指针(不允许通过指针变量修改它指向的对象的值)

const 类型名 *指针变量名

2)、常指针(指定指针变量的值为常量,即指针变量的指向不可改变)

类型名 *const 指针变量名

Tips:必须在定义是初始化,指定其指向。

指针变量的指向不可改变,但指针变量的指向变量的值可以改变。*p2=12;//合法

注意(const和*的位置)。const在*后面,请与定义指向常变量的指针变量的形式比较。

3)、指向常量的常指针(指针变量指向一个固定的对象,该对象的值不能改变)。

const 基本类型名 *const 指针变量名

18)、void指针类型

以上这篇C和指针小结(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 浅谈c/c++中使用指针需要注意的问题

    一.使用指针的时候需要注意几点: • 分配空间 • 初始化 • 释放 二.常见的错误有几种: 1)内存分配未成功,却使用了它 编程新手常犯这种错误,因为他们没有意识到内存分配会不成功.常用解决办法是,使用内存之前检查指针是否为Null. 如果指针p是函数的参数,那么在函数的入口处用assert(p != NULL)进行检查.如果使用malloc或new来申请内存,应该用if(p == NULL)或if(p != NULL)进行放错处理. 2)内存分配虽然成功,但是尚未初始化就引用它 犯这种错误主

  • C语言中的函数指针学习笔记

    一.定义函数指针 return_type (*func_pointer)(parameter_list) 普通指针变量的定义 int * p; char * pointer; 类型的限定都在变量前面: 函数指针类型的限定是前后都有,前面是返回类型,后面是输入参数. 利用typedef 可以简化上面的表达方式. typedef return_type (*FunctionPointer) (parameter_list); FunctionPointer func_pointer; 这样是不是容易

  • 简明的C++函数指针学习教程

    定义 每一个函数都占用一段内存单元,它们有一个起始地址,指向函数入口地址的指针称为函数指针. 语法 数据类型 (*指针变量名)(参数表): int (*myFunc)(double b, int c); 说明 函数指针的定义形式中的数据类型是指函数的返回值的类型. 区分下面两个语句: int (*p)(int a, int b);//p是一个指向函数的指针变量,所指函数的返回值类型为整型 int *p(int a, int b);//p是函数名,此函数的返回值类型为整型指针 指向函数的指针变量不

  • 简要说明C语言中指针函数与函数指针的区别

    指针函数一般是指返回指针的函数: #include <stdio.h> int* fun(int *a) { return a; } int main(int argc, char **argv) { int a = 3; printf("%d", *(fun(&a))); return 0; } 函数指针是表示指向函数开始地址的指针: 首先要了解函数的调用过程: #include <stdio.h> int fun(int i) { return i

  • 浅谈C++指针(必看)

    指针在编程中有时很重要的作用 我们可以用它完成一些看似不可能完成的任务 #include<iostream> using namespace std; void square(int *n){ *n=*n**n; } int main(){ int num = 2; cout<<"The original number is "<<num<<endl; square(&num); cout<<"The new

  • C和指针小结(推荐)

    C和指针 相关基础知识:内存的分配(谭浩强版) 1.整型变量的地址与浮点型/字符型变量的地址区别?(整型变量/浮点型变量的区别是什么) 2.int *p,指向整型数据的指针变量. 3.通过指针变量访问整型变量. 4.*p :指针变量p指向的存储单元(变量) 5.p = &a-->> *p = *&a 6.用指针作函数参数 7.调用函数中,由于虚实结合是采用单向的"值传递"方式,只能从实参向形参传数据,形参值的改变无法回传给实参. 8.引用一个数组元素可以用(

  • java中数组的相关知识小结(推荐)

    1. 2.数组的命名方法 1)int[]ages=new int[5]; 2) int[]ages; ages=new int[5]; 3)int[]ags={1,2,3,4,5}; 4)int[]ags; ags=new int{1,2,3,4}; 或者 int[]ags=new int{1,2,3,4}; 3.java不支持不同类型的重名数组 4.java中数组的循环赋值 package dierge; public class Shuzu { public static void main

  • Json.net 常用使用小结(推荐)

    Json.net 常用使用小结(推荐) using System; using System.Linq; using System.Collections.Generic; namespace microstore { public interface IPerson { string FirstName { get; set; } string LastName { get; set; } DateTime BirthDate { get; set; } } public class Empl

  • PHP 数组基本操作小结(推荐)

    数组的概念 数组(array)是 PHP 中一个非常重要的概念,我们可以把数组看做一系列类似的数据的集合,实际上数组是一个有序图. PHP 还提供了超过 70 个内建函数来操作数组. 创建数组 使用 array() 语言结构创建数组: <?php $arr_age1 = array(18, 20, 25); // 或者: $arr_age2 = array("wang"=>18, "li"=>20, "zhang"=>25

  • PHP的openssl加密扩展使用小结(推荐)

    引言 互联网的发展史上,安全性一直是开发者们相当重视的一个主题,为了实现数据传输安全,我们需要保证:数据来源(非伪造请求).数据完整性(没有被人修改过).数据私密性(密文,无法直接读取)等.虽然现在已经有SSL/TLS协议实现的HTTPS协议,但是因在客户端上依赖浏览器的正确实现,而且效率又很低,所以一般的敏感数据(如交易支付信息等)还是需要我们使用加密方法来手动加密. 虽然对于一般的WEB开发人员来说,大可不必深入了解一些安全相关的底层技术,但学习加密基础知识,使用现有加密相关工具却十分必要.

  • JS刷新父窗口的几种方式小结(推荐)

    浮层内嵌iframe及frame集合窗口,刷新父页面的多种方法 <script language=JavaScript> parent.location.reload(); </script> <script language=JavaScript> parent.location.reload(); </script> 弹出子页面 <script language=JavaScript> window.opener.location.reloa

  • jQuery Select下拉框操作小结(推荐)

    jQuery获取Select元素,并选择的Text和Value: 1. $("#select_id").change(function(){//code...}); //为Select添加事件,当选择其中一项时触发 2. var checkText=$("#select_id").find("option:selected").text(); //获取Select选择的Text 3. var checkValue=$("#select_

  • jquery的ajax提交form表单的两种方法小结(推荐)

    jquery的ajax提交form表单的两种方法小结(推荐) 方法一: function AddHandlingFeeToRefund() { var AjaxURL= "../OrderManagement/AjaxModifyOrderService.aspx"; alert($('#formAddHandlingFee').serialize()); $.ajax({ type: "POST", dataType: "html", url:

  • json与jsonp知识小结(推荐)

    json 1. json 的值可以是下面这些类型: ① 数字(整数或浮点数),比如123,1.23 ② 字符串(在双引号中) ③ 逻辑值(true 或 false) ④ 数组(在方括号中) ⑤ 对象(在花括号中) ⑥ null 2. json解析方法 ① eval('(' + jsondata + ')' ); 使用时永远是不安全的,代码注入 ② JSON.parse(jsondata); JSONLint json:字符串校验工具 3. jQuery 实现ajax jQuery.ajax([s

  • jQuery中的一些常见方法小结(推荐)

    1.filter()和not()方法 filter()和not()是一对反方法,filter()是过滤. filter()方法是针对元素自身.(跟has()方法有区别) <script type="text/javascript" src="jquery-1.12.3.min.js"></script> <script> /*filter(): 过滤 not():filter的反义词<BR>*/ $(function(

随机推荐