C指针入门

/********函数指针***********/

int max(int a, int b) {
if (a > b) return a;
else return b;
}
int main() {
int max()(int a, int b);
int (*pmax)();
int x, y, z;
pmax = max;
printf("input two numbers: \n");
scanf("%d%d", &x, &y);
z = (*pmax)(x, y);
printf("maxnum=%d", z);
return 0;
}

/******指针函数*********/

int main() {
int i;
char* day_name(int n);
printf("input day no:\n");
scanf("%d", &i);
if (i < 0)
exit(1);
printf("day no: %2d-->%s\n", i, day_name(i));
return 0;
}
char* day_name(int n) {
static char* name[] = {
"Illegal day",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
"Sunday"
};
return (n < 1 || n > 7) ? name[0] : name[n];
}

/*****************************************/

int *p p为指向整形变量的指针
int *p[n] p为存放指针的数组(指针数组)
int (*p)[n] p为指向数组的指针(数组指针)
int *p() p为返回指针的函数(指针函数)
int (*p)() p为指向函数的指针(函数指针)
int **p p为指向指针的指针

int*(*(*a)())[10];//a是一个函数指针变量,该函数返回一个指针值,该指针值指向一个数组,该数组元素为int型指针。

时间: 2024-08-25 23:15:22

C指针入门的相关文章

android107 指针入门

#include <stdio.h> #include <stdlib.h> //指针就是内存地址 //32为操作系统最大是4G内存,32为系统则是2的32次方, //所以只能表示2的32次方个内存地址, 也就是2的32次方个字节就是4G. main(){ int i;//i是内存空间的别名 ,i里面保存的是内存地址, i = 3; printf("%#x\n", &i); system("pause"); }

指针入门必看!!!指针的详细解析

1.指针跟一般变量的区别变量是用来存储数据的数据类型,它们实际上是一个地址,地址里存的数据就是变量储存的值.你用scanf来对一个变量(比如a)进行赋值: scanf("%d", &a); &a表示变量a的地址,这里的意思也就是输入一个数然后把这个数存在一个叫a的变量的地址里面.这里还有另外一种方法可以给a赋值. int *b = &a; scanf("%d",b). 因为scanf的参数是("一个数", 目的地变量的地址

C++学习之路: 智能指针入门

引言: 编写智能指针的要点:a) 构造函数接收堆内存b) 析构函数释放内存c) 必要时要禁止值语义.d) 重载*与->两个操作符 1 #ifndef START_PTR_H 2 #define START_PTR_H 3 4 #include <iostream> 5 using namespace std; 6 7 class Animal 8 { 9 public: 10 Animal() { cout << "Animal" << end

指针入门

第一节 看的角度不同 所得到的值不同 从不同的角度观看 数据所看到的数据类型不同 (所需要注意的事要问的内容是什么) 生活中常见的进制为10进制 两位十进制可以表示99,而三位十进制数可以表示的最大为999.位数越多能表达的表示的数越大 列如01代表十进制的110代表十进制的2 八位的二进制位可以表示十进制的255 字节越多能表达的数的范围越大 字节数也是同样如此 明白:数据是怎么保存在计算机中的 'a' char 以字符所代表的ASCII码保存 取决于你把他看成什么 第二节 #include<

转载 c++指针 指针入门

这是一篇我所见过的关于指针的最好的入门级文章,它可使初学者在很短的时间内掌握复杂的指针操作.虽然,现在的Java.C#等语言已经取消了指针,但作为一个C++程序员,指针的直接操作内存,在数据操作方面有着速度快,节约内存等优点,仍是很多C++程序员的最爱.指针就像是一把良剑,就看你怎么去应用它! 什么是指针? 其实指针就像是其它变量一样,所不同的是一般的变量包含的是实际的真实的数据,而指针是一个指示器,它告诉程序在内存的哪块区域可以找到数据.这是一个非常重要的概念,有很多程序和算法都是围绕指针而设

函数指针入门

函数指针即为指向一个函数的指针.要定义一个函数指针,只需将需要指向的函数的原型中函数名的前面加一个"*"号即可.比如,函数foo的原型为: int foo(int, char, struct node); 那么要建立一个指向foo的指针,名为bar,就可以这样写: int (*bar)(int, char, struct node); 要令bar指向foo函数,可以这样写: bar = foo; 也可以这样写: bar = &foo; 要使用bar来调用foo函数,可以这样写:

C语言-指针入门

指针被称为"C语言的灵魂".实际上是一种专门用于保存内存地址的变量. 1.定义一个指针 在C语言中,我们使用形如int *p;的语句来声明一个指针,其中int可以替换成char,double等基础数据类型,跟在p前面的*表明p是一个指针类型的变量.但在程序编写过程中,这样仅声明指针却不进行初始化是非常危险的,这类指针通常被称为"野指针".因此推荐在声明的同时便对指针进行初始化: int i = 10; int *p = &i; // 用p保存i的内存地址 可

指针进阶 - 字符串与指针 &amp; 数组与指针

昨天的随笔里忘记提的重要一点: 指针指向的地址是有长度的,但是指针就是个针,一个针只有一个针尖,只能指向一个地址. 当我们用这种方式测量指针长度时 char *pstring; printf("%d\n", sizeof(*pstring)); 实际上我们测的不是指针占据的内存大小,而是指针指向的数据占据的内存大小,哪怕为空.由于代码中是char型,所以输出结果为1. 当我们测量却忘记带 * 号时,如: printf("%d\n", sizeof(pstring))

推荐一些不错的计算机书籍

转载:http://blog.csdn.net/heiyeshuwu/article/details/8688324 # PHP<PHP程序设计>(第2版)  --PHP语法和入门最好的书<PHP5权威编程>  --PHP入门后升级书<深入PHP:面向对象.模式与实践>(第3版) --理解PHP中的面向对象和设计模式<高性能PHP应用开发> --了解一些基本简单的PHP优化<PHP核心技术与最佳实践> --了解很多PHP高级技术和延伸技术<