C语言指针

作者: 心无君 | 来源:发表于2016-03-09 23:07 被阅读0次

综述

int型变量当指针用

void func(char* p[]) 
{
    *p="ABCDEF";
}
int main()
{
    int A; //int 型用作指针
    func((char**)&A);
    cout<<(char*)A<<endl;
    return 0;
}

char、char[]、char[20]、char&做函数参数时的异同*

只有char&在函数栈中不占用空间,其他均会在函数栈中开辟空间,有一次形参——实参匹配赋值的过程。
故,自以为从编译器的角度,应该把char&解释为传址,其他均解释为传值(char*、char[]也解释为传值,因为有指针的赋值)。

const在指针强制转换面前形同虚设

void func(const char *p)   
{
    char *p1 = (char*)p;
    *p1 ='b';
}

指针、函数、数组等稀奇古怪的声明方式

void(*signal(int signo,  void(*func)(int)))(int);

指针与数组名本质区别

int A[20]; 
int *p = A;
p[1] = *(p+1)   
A[1] = *(A+1)   //比指针写法在取值时少一次间接取址

指针与数组何时相同

ANSI C规定:函数参数中数组写法等同于指针,但不包括其所指类型。
  例:int func(char *p[5])  与  int func(char (*p)[5])不同。
ANSI C规定:在表达式中,数组|指针 下标写法等同于偏移量写法。

用字符串初始化指针和数组的区别

char *p = “ABCDEFG”;
char p[] = “ABCDEFG”;
//前者放于只读段内,不可修改,后者依据p[]的特性可能是静态存储区/栈。

函数形参——实参匹配过程和返回值的本质

赋值
想实现传统传址的方法就是:地址赋值。
赋值时,不用考虑空间有效性问题,只需考虑值对不对的问题。
赋值之后,值所表示的地址在新的空间里必须是有效的。

const类指针赋值问题

const int *p1; int *p2;      p1=p2;(正确)   p2 = p1;(错误)
const int **p1; int **p2;    p1=p2;(错误)   p2 = p1;(错误)
/** 
ANSI C解释:
如果相互赋值的是两个指针,则
    1.两个操作数都是指向有限定符或无限定符的相容类型的指针 (或)
    2.左边指针所指向的类型必须具有右边指针所指向类型的全部限定符。
但是:在强制转换面前,const是浮云。
**/

更多详细介绍参见:

1.指针常识
2.指针与声明
3.指针与强制转换
4.指针与数组
5.指针与函数
6.指针与类型限定符

相关文章

  • C语言05- 指针

    C语言05- 指针 13:指针 指针是C语言中的精华,也是C语言程序的重点和难点。 13.1:指针定义与使用 指针...

  • 02-C语言的指针

    02-C语言的指针 目标 C语言指针释义 指针用法 指针与数组 指针与函数的参数 二级指针 函数指针 指针在C中很...

  • C语言指针总结大学霸IT达人

    C语言指针总结大学霸IT达人 C语言的指针是C语言区别其它语言的最主要的特定之一。有了指针,C语言就可以抛开所有束...

  • 带小白学C语言指针

    C语言里指针才是C语言的开始和指针;C语言里基本所有东西都是由指针演变而成; 指针是指向地址的变量,类型就是指针...

  • 在Swift中使用C语言的指针

    在Swift中使用C语言的指针 在Swift中使用C语言的指针

  • [Swift]结构体指针操作

    C语言的指针操作 在c语言中申明一个变量并通过指针修改该变量的值 a value is 2 c语言操作结构体指针操...

  • Go语言-指针

    Go语言中的指针不同于C语言,Go语言的指针使用方法要简单很多。当然和C语言从指针定义到指针的使用都有很大的不同。...

  • C语言中的指针与数组

    C语言中的指针与数组 @(C语言)[排序算法, 快速排序, C实现] 引言 相信指针与数组是不少同学在初学C语言时...

  • 指针数组和数组指针

    指针数组|存储指针的数组 在C语言和C++语言中,数组元素全为指针的数组称为指针数组。 例如:int *p[10]...

  • iOS开发 -- C语言基础8(指针)

    iOS开发 -- C语言基础8(指针) 指针是C语言中非常重要的数据类型,如果你说C语言中除了指针,其他你都学得很...

网友评论

    本文标题:C语言指针

    本文链接:https://www.haomeiwen.com/subject/djktlttx.html