#include <stdio.h>

int main ()
{
int var1;
char var2[]; printf("var1 变量的地址: %p\n", &var1 );
printf("var2 变量的地址: %p\n", &var2 ); return ;
}
#include <stdio.h>

int main ()
{
int var = ; /* 实际变量的声明 */
int *ip; /* 指针变量的声明 */ ip = &var; /* 在指针变量中存储 var 的地址 */ printf("Address of var variable: %p\n", &var ); /* 在指针变量中存储的地址 */
printf("Address stored in ip variable: %p\n", ip ); /* 使用指针访问值 */
printf("Value of *ip variable: %d\n", *ip ); return ;
}

#include <stdio.h>

int main ()
{
int *ptr = NULL; printf("ptr 的地址是 %p\n", ptr ); return ;
}
#include <stdio.h>

const int MAX = ;

int main ()
{
int var[] = {, , };
int i, *ptr; /* 指针中的数组地址 */
ptr = var;
for ( i = ; i < MAX; i++)
{ printf("存储地址:var[%d] = %x\n", i, ptr );
printf("存储值:var[%d] = %d\n", i, *ptr ); /* 移动到下一个位置 */
ptr++;
}
return ;
}
#include <stdio.h>

const int MAX = ;

int main ()
{
int var[] = {, , };
int i, *ptr; /* 指针中最后一个元素的地址 */
ptr = &var[MAX-];
for ( i = MAX; i > ; i--)
{ printf("存储地址:var[%d] = %x\n", i-, ptr );
printf("存储值:var[%d] = %d\n", i-, *ptr ); /* 移动到下一个位置 */
ptr--;
}
return ;
}
#include <stdio.h>

const int MAX = ;

int main ()
{
int var[] = {, , };
int i, *ptr; /* 指针中第一个元素的地址 */
ptr = var;
i = ;
while ( ptr <= &var[MAX - ] )
{ printf("Address of var[%d] = %x\n", i, ptr );
printf("Value of var[%d] = %d\n", i, *ptr ); /* 指向上一个位置 */
ptr++;
i++;
}
return ;
}
#include <stdio.h>

int main ()
{
int var;
int *ptr;
int **pptr; var = ; /* 获取 var 的地址 */
ptr = &var; /* 使用运算符 & 获取 ptr 的地址 */
pptr = &ptr; /* 使用 pptr 获取值 */
printf("Value of var = %d\n", var );
printf("Value available at *ptr = %d\n", *ptr );
printf("Value available at **pptr = %d\n", **pptr); return ;
}
#include <stdio.h>
#include <time.h> void getSeconds(unsigned long *par); int main ()
{
unsigned long sec; getSeconds( &sec ); /* 输出实际值 */
printf("Number of seconds: %ld\n", sec ); return ;
} void getSeconds(unsigned long *par)
{
/* 获取当前的秒数 */
*par = time( NULL );
return;
}
#include <stdio.h>

/* 函数声明 */
double getAverage(int *arr, int size); int main ()
{
/* 带有 5 个元素的整型数组 */
int balance[] = {, , , , };
double avg; /* 传递一个指向数组的指针作为参数 */
avg = getAverage( balance, ) ; /* 输出返回值 */
printf("Average value is: %f\n", avg ); return ;
} double getAverage(int *arr, int size)
{
int i, sum = ;
double avg; for (i = ; i < size; ++i)
{
sum += arr[i];
} avg = (double)sum / size; return avg;
}
#include <stdio.h>
#include <time.h>
#include <stdlib.h> /* 要生成和返回随机数的函数 */
int * getRandom( )
{
static int r[];
int i; /* 设置种子 */
srand( (unsigned)time( NULL ) );
for ( i = ; i < ; ++i)
{
r[i] = rand();
printf("%d\n", r[i] );
} return r;
} /* 要调用上面定义函数的主函数 */
int main ()
{
/* 一个指向整数的指针 */
int *p;
int i; p = getRandom();
for ( i = ; i < ; i++ )
{
printf("*(p + [%d]) : %d\n", i, *(p + i) );
} return ;
}

吴裕雄--天生自然C语言开发:指针的更多相关文章

  1. 吴裕雄--天生自然C语言开发:函数指针

    #include <stdio.h> int max(int x, int y) { return x > y ? x : y; } int main(void) { /* p 是函 ...

  2. 吴裕雄--天生自然 R语言开发学习:R语言的安装与配置

    下载R语言和开发工具RStudio安装包 先安装R

  3. 吴裕雄--天生自然C语言开发:结构体

    struct tag { member-list member-list member-list ... } variable-list ; struct Books { ]; ]; ]; int b ...

  4. 吴裕雄--天生自然C语言开发:数组

    ] = {1000.0, 2.0, 3.4, 7.0, 50.0}; ]; #include <stdio.h> int main () { ]; /* n 是一个包含 10 个整数的数组 ...

  5. 吴裕雄--天生自然C语言开发:函数

    return_type function_name( parameter list ) { body of the function } /* 函数返回两个数中较大的那个数 */ int max(in ...

  6. 吴裕雄--天生自然 R语言开发学习:数据集和数据结构

    数据集的概念 数据集通常是由数据构成的一个矩形数组,行表示观测,列表示变量.表2-1提供了一个假想的病例数据集. 不同的行业对于数据集的行和列叫法不同.统计学家称它们为观测(observation)和 ...

  7. 吴裕雄--天生自然 R语言开发学习:模块\包的安装命令

    install.packages('模块包名称') 或者 install.packages('模块包名称',repos='http://cran.us.r-project.org')

  8. 吴裕雄--天生自然 R语言开发学习:集成开发环境\工具RStudio的安装与配置

  9. 吴裕雄--天生自然C语言开发:错误处理

    #include <stdio.h> #include <errno.h> #include <string.h> extern int errno ; int m ...

随机推荐

  1. BUUCTF-[HCTF 2018]WarmUp

    php中可以使用strpos函数与mb_strpos函数获取指定的字符串在别一个字符串中首次出现的位置,也可以使用它们判断一串字符串中是否包含别一个字符串. PHP strpos() 函数 查找 &q ...

  2. 初学者学习JavaScript的实用技巧!

    Javascript是一种高级编程语言,通过解释执行.它是一门动态类型,面向对象(基于原型)的直译语言.它已经由欧洲电脑制造商协会通过ECMAScript实现语言标准化,它被世界上的绝大多数网站所使用 ...

  3. 数组分组(DP)

    一个长度为n的数组a,我们可以把它分成任意组,每一组是一段连续的区间. 比如数组1,2,3,4,5可以分成(1,2),(3,4,5)两个组.每个分组都有一个权值,这个权值就是分组里面每个数的乘积对10 ...

  4. 吴裕雄--天生自然 JAVASCRIPT开发学习:计时事件

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  5. 2019.11.18CTFD搭建记录

    ### 0x01 实验室纳新,准备在自己服务器搭建个ctfd给新生们玩玩,忙活了一天orz[大一刚开学就搭建过没这么费力啊..] 现在大二了没想到能折腾一天... 直接说下我踩的坑吧,给后来的人们说说 ...

  6. 史上最难PHPer笔试题,40分就能月薪过万!附答案

    请批判性的学习,欢迎大牛指正错误 1.有关PHP字符串的说法,不对的是:A.如果一个脚本的编码是 ISO-8859-1,则其中的字符串也会被编码为 ISO-8859-1.B.PHP的字符串在内部是字节 ...

  7. Django知识点集合

  8. MyBatis从入门到精通(第2章):MyBatis XML方式的基本用法【insert用法、update用法、delete用法】

    2.4  insert 用法 2.4.1  简单的 insert方法 在接口 UserMapper.java 中添加如下方法. /** * 新增用户 * @param sysUser * @retur ...

  9. 如何在Foxwell NT650 OBD2扫描仪上查看实时PID数据?

    这是在Foxwell NT650扫描仪上使用实时数据菜单的操作指南 . 实时数据菜单使您可以查看和记录来自电子控制模块的实时PID数据.菜单选项通常包括: 完整的数据清单 自定义数据列表 如何使用“完 ...

  10. Spring事务管理 —— readOnly只读事务

    事务是什么?事务是一个原子操作,由一系列动作组成.事务的原子性确保动作要么全部完成,要么完全不起作用. 下面来看一个项目中遇到的问题: 有这么一个需求,我们要查询一些数据,但是在查询这个数据之前我们要 ...