C语言学习003:Hello 指针

在C中使用指针的原因

  避免副本 在函数调用的时候,可以只传递数据的引用,而不用传递数据

  数据共享 两段代码可以同时操作同一份数据,而不是两份独立的副本

使用指针读写数据 

#include <stdio.h>

int main(){
    int x=5;
    printf("x lives at %p\n",&x);//%p格式符将地址以16进制的格式输出
    int* address_of_x=&x;//用指针变量保存x的地址
    int value=*address_of_x;//通过*运算符可以获取指针地址所指向的值
    printf("%i\n",value);
    *address_of_x=10;//改变address_of_x地址所指向的空间的值
    printf("After the change,x = %i\n",x);
    return 0;
}

船长,向东航行!

#include <stdio.h>

void go_south_east(int* lat,int* lon){
    //通过*运算符找到lat地址对应的空间
    *lat=*lat-1;
    *lon=*lon+1;
}

int main(){
    int latitude=32;
    int longtitude=-64;
    go_south_east(&latitude,&longtitude);//传递变量的地址
    printf("Avast! Now at:[%i,%i]\n",latitude,longtitude);
    return 0;
}
时间: 2024-12-11 06:27:14

C语言学习003:Hello 指针的相关文章

《C语言学习笔记》指针数组及其应用

C语言中,最灵活但又容易出错的莫过于指针了.而指针数组,是在C中很常见的一个应用.指针数组的意思是说,这个数组存储的所有对象都为指针.除了存储对象为指针,即一个地址外,其它操作和普通数组完全一样. 1 #include <stdion.h> 2 3 int main() { 4 int i; 5 char *name[] = {"BASIC", "FORTRAN", "C++", "Pascal", "C

C语言学习之路——指针初探

进来学习C语言碰到了指针,着实学了一段时间,搞不出个头绪,今日感觉有些眉目,来此做个记录,也望能给困顿的人一起分享下感悟. 学习指针还要从变量,数组,函数的定义这些基础说起. 如:int a=10; int a[]={1,2,3,4}; int max (int x,int y) { .... } 学习C语言指针我想指针变量的定义就不用说了吧. 先上一个例子然后再给大家一一展开进行讲述. #include<stdio.h>int main(){int a;scanf("%d"

C语言学习笔记-8.指针

一.什么是指针 1.指针是存放另一个变量内存地址的变量 指针型变量的长度为4个字节,32位 2.宏定义NULL,表示0 良好的编程习惯:暂时不使用指针时,将其值设为NULL 3.指针定义后,若未被初始化,则其值为0xCCCCCCCC(Visual Studio中) 若访问此地址,则程序崩溃 4.指针作用:对主函数中实参变量值进行修改 例:void get(int *input) { scanf(“%d”, input);             //注意:不能写成&input } 二.指针与数组

C语言学习019:函数指针

在C语言中,函数名也是指针变量,比如创建了一个add(int n,int m)的函数的同时也创建了一个名为add的指针变量,因此我们可以把函数指针当作一种类型为它赋值.当作参数传递等操作 C语言创建函数指针的公式: 返回类型 (*指针变量)(参数类型) 1 #include <stdio.h> 2 3 int add(int n,int m){ 4 return n+m; 5 } 6 7 int sub(int n,int m){ 8 return n-m; 9 } 10 11 int mai

C语言学习笔记(六) 指针和数组

使用C语言就必然会使用到指针和数组.看下面的代码: int main(int argc, char** argv){     int a[4] = {1,3,5,7};     int *p = a;     int i;     for (i=0; i<4;i++){         printf("i=%d, p[i]=%d, *(p+i)=%d, a[i]=%d, *(a+i)=%d\n",                 i, p[i], *(p+i), a[i], *(

C语言学习入门 (五) 指针

直接引用 char a; a = 10; 程序内部是怎么操作的呢? 其实,程序对变量的读写操作,实际上是对变量所在的存储空间进行写入或取出数据.就上面的代码而言, 系统会自动将变量名a转换为变量的存储地址,根据地址找到变量a的存储空间,然后再将数据10以2进制的形式放入变量a的存储空间中. 通过变量名引用变量,由系统自动完成变量名和其存储地址之间的转换,称为变量的"直接引用"方式 间接引用 如 将变量a的地址存放在另一个变量中,比如存放在变量b中,然后通过变量b来间接引用变量a,间接读

梓益C语言学习笔记之指针

一.32位平台下,地址是32位,所以指针变量占32位,共4个字节 二.内存单元的地址即为指针,存放指针的变量称为指针变量,故:"指针"是指地址,是常量,"指针变量"是取值为地址的变量. char*型指针一次取一个字节,int*型指针一次取4个字节,double*取两次4字节 数组名是指针,代表数组首元素的地址,但数组名是常量,不能修改. 三.通过指针变量可以取得数组或函数的首地址 int*p,表示p是一个指针变量,它的值是某个整型变量的地址 指针数组:int *a[

黑马程序员学习心得------C语言复杂数据类型之指针

众所周知,指针是C语言中最重要也是最难的一种数据类型,这是C语言中与其他类似于Java等语言不同的直接操纵内存的一种数据.也有人如此形容指针的重要性“如果你C语言中除了指针都学得很好,信手拈来,唯独不会指针,那么你就是没学过C语言!”.下面来回忆一下这段时间学习指针的心得. 1 定义的格式: 指向内容的数据类型  *指针变量名 例如: int  *p; 2 指针的赋值问题 int a=10; int *p=&a;//指针p指向的a的地址值 int *p; p=&a  //这两种赋值都可以.

黑马程序员——c语言学习心得—— 指针

黑马程序员——c语言学习心得—— 指针 -------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 1,打开文件fopen(文件名,打开方式);例如:FILE *fp = fopen("a1","r");  返回的是文件的指针(文件在内存缓冲区的首地址)fopen函数反回值 是指向 a1文件的指针,通常赋值给一个指针变量关于文件名a1 也可以是一个“路径+文件名”   c:\abc.txt----------------